Metafields limited to 40 entries?

I have a definition for Releases and within it I need a large number of Metafields - beyond basic release information I need to be able to input information, packshots + product mock-ups for record pressings which could be upto 20x pressings per release (each requiring 3 metafields for info, packshots, and mocks). Because I can’t see any functionality for a Repeater Metafield I’m inputting these individually which is working fine but I’m being capped at adding new Metafields after 40. Everything I read says the limit is 200, can anyone clarify why I’m being capped so low?

1 Like

Shopify Plan Limits: Shopify has different Metafield limitations based on the plan you are on. While the standard limit for Metafields might be 200, certain plans (like Basic or Shopify plans) may impose stricter caps on the number of Metafields you can add to a resource.

Resource-Specific Limits: Each resource in Shopify (like products, orders, customers, etc.) has specific limits for Metafields. It’s possible that the resource you’re working with (like products, collections, or custom resources) has a cap lower than the global Metafield limit.

Where can we find information on what the limits are?

Hi @crumbscrumbs
The official limit for metafield definitions is 250, so if you’re being capped at 40 it may be a plan-based or store-specific restriction. I’d recommend reaching out to Shopify Support directly so they can confirm the exact limit for your store and advise on a solution.

Hi,

Hope this will help

  • Create a Pressing metaobject definition (only a few fields)
  • Create one metaobject entry for each pressing
  • Add a metafield on the Release (or product) that references a list of Pressing entries
  • Show them on the storefront

Liquid example

{% assign pressings = product.metafields.releases.pressings.value %}
{% for pressing in pressings %}
  <h3>{{ pressing.pressing_number.value }}</h3>
  <p>{{ pressing.pressing_info.value }}</p>

  {% for img in pressing.packshots.value %}
    <img src="{{ img.preview_image.src }}" alt="{{ pressing.pressing_number.value }}">
  {% endfor %}

  {% for mock in pressing.mockups.value %}
    <img src="{{ mock.preview_image.src }}" alt="Mock for {{ pressing.pressing_number.value }}">
  {% endfor %}
{% endfor %}

Then it also makes sense to know

Nowhere on this page does it mention the 40 limit

Yepp.

Looks like it’s a limit of fields per metaobject and it is not mentioned anywhere in these documents.

But I was able to reproduce easily:

Can probably be avoided with more complex object structure, like @Small_Task_Help suggested.