Metafields // Updating a metafield object via the website

Topic summary

Main issue: enabling customers to update customer metafields (custom data like birthday or product interests) directly on the storefront.

Key points:

  • Native support: Not available via Shopify’s storefront. Metafields inherit the parent resource’s access scope, so writing via the Admin API from client-side JS is unsafe.
  • Security: Direct frontend writes would expose credentials/overbroad permissions. A middleware layer is recommended to conceal API keys and restrict scope.
  • Solutions: Use an app or build a custom app/middleware. A suggested public app is Helium Customer Fields, which offers JS/REST APIs and a drag‑and‑drop form builder to let customers register or update account info.
  • Limitations: The suggested app does not have built‑in support for “product list metafields” or product tracking fields. However, it provides guides to implement product likes and product view tracking using its API (links shared).

Outcome/status:

  • No built-in Shopify setting to achieve this; practical paths are an app or custom middleware. The specific product-list metafield need isn’t supported out of the box; workarounds via API guides exist. Discussion remains open for implementation choice.
Summarized with AI on January 23. AI used: gpt-5.

Hey,

Wondering if it is possible to for website users to update metafields on a customer record.

Effectively, I wanted to add some additional values to the customer metafields (birthday, product interest, etc) so that customers can fill them out.

Last time I checked you’d need an app for this. – https://apps.shopify.com/customr

1 Like

Hey Tim,

Yeah still looks like it from my reading, which kind of sucks tbh.

I’m kind of mulling if I go and write some javascript to post via admin API, but there isn’t specifically access control for metafields, they seem to inherently be related to the access scope of the parent (ie: customers), and not particularly in love with giving write access to the site. :smiley:

Yeah, unsafe. So either an app or a middleware which will conceal your API credentials/limit the access scope…

Hey @Chris_Sydney , as far as I know this is still only available to do via an app, which could be a custom app if you wanted to create this functionality yourself using Shopify’s APIs, or a public app such as Helium Customer Fields.

With the Customer Fields app, you can choose to either take advantage of our Javascript or REST APIs to implement your own custom functionality, or use our easy drag and drop form builder to create a form with custom fields and install it on your site for customers to either be able to register or update their account information.

yeah exactly what I was thinking. I could chuck something in the middle obviously, then just post the update to the middleware, but it just seems so convoluted given the features of metafields and that obviously you can write this information in via the UX.

Hey Brett,

Can this handle product list metafields?

Its interesting, I will have a look. I guess I was more keen to build out from scratch as it seems like it should be something thats would possible.

Hey @Chris_Sydney ,

We do not currently have any built in functionality for tracking products, but we do have some guides about how you could implement some sort of product likes or product views functionality using our API.

https://developers.customerfields.com/guides/product-likes/
https://developers.customerfields.com/guides/tracking-product-views/