Over the last couple of years we’ve been working with Shopify Plus a lot – be it via functional discovery, hands-on replatforming support or project managing builds. One of the biggest things that needs to be ‘discovered’ with Shopify is the architecture of product data, particularly when you’re migrating from a platform like Magento or Salesforce Commerce Cloud, which have very different ways of managing attributes and fields.
In Shopify (and Shopify Plus), tags (stored and requested as simple comma-separated values) are the most common way of handling data against properties, as Shopify’s core way of managing data and being natively supported by third parties and apps, available via various APIs and generally used in most Shopify functions. In addition to product tags (which is what we’re focusing on in this guide), you also have customer tags and order tags (as the main forms of tag), which allow for similar principles at their level (e.g. order filtering, triggering of comms based on a customer tag etc).
Generally, if you’re looking to keep things simple, a tag is the best way to go. Tags represent a very simple ‘object’, but they’re highly versatile in terms of what they can be used for and what they can do within Shopify and third parties – for example, a solution like NOSTO or Klevu would read tags to achieve things like reducing visibility of a product, removing a product from their index, trigger an overlay to be used on a product card etc.
So tags are used for things like categorising, storing very simple data and to drive actions, but they’re not the same as a ‘product attribute’, in that you don’t have things like different input types, variable scopes and they’re not designed to store information – this is where metafields come in. A metafield is essentially a custom field which, like a tag, can be assigned to customers, products and orders and can store data and control different actions.
Generally, a metafield (which is a more complex form of data that still be requested and managed via APIs) would be used for more complex actions or when something needs to be stored, for example:
- An additional text field for a product detail page
- Options to add certain labels or images
- A choice of a number of pre-set options
- Information needed for third-party apps (e.g. additional images or SEO data)
In order to manage metafields, you need to use an app – there are lots of apps available, such as:
Shopify FD is a Google Chrome extension that makes managing metafields (and product data generally) far easier – definitely worth installing if you’re working with Shopify. Apps for managing metafields in Shopify include:
These are just a few examples.
In a standard migration, here are some examples of how product data may be set up.
|Data example||Likely Setup|
|Block of text about the brand on the PDP||Metafield|
|Block for a NOSTO product recommendations carousel||Metafield|
The reason these would be metafields is that they’re storing richer content or because the user could select from multiple options.
Using tags and metafields via APIs
Whilst both tags and metafields can be accessed via Shopify’s APIs, issues tend to come from metafields taking a lot longer – for this reason, people tend to use tags in place of metafields where possible. In addition to this, not all third parties support metafields, whereas the majority support and rely on tags. Due to the slowness of accessing them and the impact they can have on updating an index, third parties also tend to prefer working with tags.
Other useful resources on using tags and metafields: