Specification tables

Creating tables

Core concepts

Before creating a specification table, make sure that you fully understand the core concepts. Learn more

To create a new specification table, open the app in your Shopify admin, and select the Specification tables category:

Then, click on the "Add specification table" button. You should see the following page:


The name helps you to identify your tables easily. We recommend you use a simple word, such as "Camera", or "Washing machine". Most of the time, it will match your product type.

This information won't be visible to your customers; it is internal information.


When creating a new specification table, its status is set to "Active" by default. The status can accept three values:

  • Active: this specification table will be visible on your Online Store if you have added the block in the theme editor.
  • Draft: this specification table will be completely hidden.
  • Preview: this specification table will be hidden from your customers, but still previewable in the Theme Editor.

Table conditions

After creating your specification tables, you need to assign them to products. There are two ways to do that:

  • Manual: with manual assignment, you will need to edit the product attributes and assign the table manually. If you have a few products, this is the approach that we recommend, as it ensures that the correct table is assigned to the correct product.
  • Automatic: similar to Shopify automatic collections, you can also assign tables to products automatically by using conditions.

Potential conflicts

If two or more tables match for a given product, the oldest table (by order of creation) will be assigned. We recommend that you design your conditions in a way that conflict cannot exist. You can also manually assign a table to a product, as manual assignment will always have priority over an automatic assignment.

Matching conditions

If you have more than one condition, you can instruct the app on how to apply the matching. If any conditions is selected, this means a product will be assigned to this table if at least one condition matches. If all conditions are selected, a product will be assigned only if all the conditions match.

Adding a new condition

You can add a new condition by clicking on the "Add another condition" button. As of today, the app supports three different conditions:

  • Product vendor
  • Product type
  • Product tags
  • Collection (for instance, all products belonging to the collection "Shirts" can be assigned a specific table).

You can combine the different conditions.

Best practices

If you create complex conditions, it might be possible for a product to match two or more tables. Because the app will always assign the oldest table, this may lead to unexpected results.

As a consequence, we recommend you follow the following practices:

  • Limit the number of conditions to 1
  • Use an unambiguous condition (we recommend the product type because this information is guaranteed to be unique for every product)


Groups allow to organize your attributes into logical units. By default, a specification table does not have any group, so you need to create one by clicking on the "Add group" button. You can, for instance, use a generic name such as "General", or provide a more meaningful name. You can always rename the group after.


By default, the groups name will be visible to your customers when the table is displayed on your Online Store. You can however decide to hide the information in the theme editor.


Once you have created a group, you can add your first attribute by clicking on the "Add attribute" button:

Spec & Compare app offers a wide range of attributes allowing you to re-use existing product information, connect existing metafields or create a new attribute that would not make sense beyond specification tables.

Attributes are separated into two main categories:

  • Product information: those attributes will reuse existing product information, such as price, vendor, or rating. This means that you can show those attributes on your specification or comparison tables without entering them again.
  • Custom attributes: you might have very specific information that you would like to show on your specification tables. For instance, the "volume" of a washing machine or the "ISO range" of a digital camera. Those information do not belong to basic product information.

Name and tooltip

When creating a new attribute, you need to enter a name (required) with an optional tooltip. The name is how this specific attribute will appear to your customers. We recommend you keep the name short and descriptive.

The tooltip is used to give extra information hidden by default. For instance, if you sell digital cameras, you might have an attribute called "ISO range", with a tooltip explaining how ISO range impacts image quality.

Comparable option

All attributes created will be available on specification tables. However, when comparing products, it might not always be helpful to show every attribute so that customers can compare only the most useful attributes.

When you create an attribute, you can choose whether this attribute will appear or not on comparison tables. By default, all attributes are comparable, but you can turn it off:

Comparable option can be changed even after the attribute has been created.

Attribute types

The following sections go through all the supported attributes, with extra information on how to use them in an appropriate way.

Product option

This attribute allows displaying values of a given product option. Product options are specified directly in your product to create variants. For instance, "Color", "Size" or "Material" are options often found in an e-commerce store.

The Attribute scope allows you to control how the app will show the values. For instance, let's say you have a product option called "Size" with the values "XS", "S", "M", "L". If you select "Product" for the scope, then the app will display all the options. If "Variant" is selected, the app will only show the option value of the selected variant and will update automatically when the variant changes.

With this attribute type, you also need to enter the "Option name". It must match exactly the name of your product options.

Product type

This attribute will show the product type value specified in your product information.


This attribute will show the product vendor value specified in your product information.


This attribute will show the product price value specified in your product information. By default, this attribute is created with the scope "variant", which means that the price will change when the variant change. If you select "product", then the app will always show the product's minimum price, independently of the selected variant.


This attribute will show the variant SKU value specified in your product information. Because SKU can only be specified by variant, the SKU will change automatically when the variant changes.


This attribute will extract the average rating for your product. In order to show the rating for your specification tables, you need to install a compatible review app.


This attribute will show the variant weight value specified in your product information. Because weight can only be specified by variant, the weight will change automatically when the variant changes.

Custom attributes

The app offers the ability to create custom attributes that will only be re-used in the context of specification tables. If you wish to create information that can be used in a different context (such as being manually connected in the theme editor), we recommend you to create metafield definitions, and connect them to a specification table.

The following attributes are currently supported:

  • Single-line text
  • Multi-line text
  • Integer number
  • Decimal number
  • Color
  • True/false
  • Weight: this attribute can be used to add weight information that is different from the product weight. If you want to display the product weight saved in your product information, use the "Weight" product information attribute instead.
  • Dimension
  • Volume
  • Date
  • Money

We recommend that you choose the most appropriate type for the attribute specification you want to display. Please note that once an attribute has been created, you won't be able to change its type in the future.

List attributes

It is not possible to create custom list attributes inside the app. If you wish to create a list attribute (for instance, an attribute "Available colors" containing a list of colors), you must create a metafield definition instead, and connect them with the "Metafield" attribute.

Metafield reference

If you have product information that you have already saved as metafields, you can reuse them in your specification tables. This way, you do not have to re-enter again the same information. To do that, select the "Metafield reference" attribute type:

By default, the product scope is selected, which means the app will show you product metafield definitions. If you select "Variant" product scope instead, the app will show you all the variant metafield definitions. Variant metafield values will change automatically when the variant changes.

Metafield without definition

Currently, the app only allows you to connect metafields that have a definition. It is not yet possible to connect an arbitrary namespace/key metafield.

Difference between attributes and metafields

While creating attributes inside the app, you might find similarities between the metafields you create in Shopify admin. And for a good reason: for performance reasons, attributes are backed as metafields. The app also allows you to connect existing metafields as specification attributes.

The main difference is how you are using those. Some information is specification attributes and has little meaning outside a specification table. To avoid cluttering product pages in Shopify admin with a ton of attributes, managing them in Spec & Compare app (an app specialized for managing specification tables), you can group-related information more logically.

When deciding whether to manage an attribute inside the app or as an external metafield that you connect in the app, you should ask yourself the following question:

  • If you would like to reuse a given information outside a specification table (for instance, connecting it in the theme editor to display the information in a different section): you should create a metafield definition in Shopify admin, and connect it to the app.
  • If the information is an information that makes no sense to be displayed outside a specification/comparison table, create it as a table attribute.
Core concepts