How To Create WooCommerce Custom Product Attributes [2021]

How To Create WooCommerce Custom Product Attributes [2021]

WooCommerce product attributes are very useful when creating a shop.

In the last guide, you learned how to create and use Global Product Attributes in WooCommerce. If you haven’t read it already, you may read it here.

In this guide, we will focus on WooCommerce custom product attributes.

The purpose of a custom product attribute is the same – it is used to represent a certain feature of a product. However, unlike global product attributes, a custom attribute is used to define a feature of a specific product; it is not applicable to most other products.

Today, you will get a step-by-step guide on how you can add Custom Product Attributes to your WooCommerce products easily.

So let’s get started.

How To Create And Use A WooCommerce Custom Product Attribute

Unlike global product attributes, a custom product attribute has to be created while adding/editing a product, from within the Product Data section.

Once you follow the steps below, you will then be able to use custom product attributes easily.

So let’s get started.

Go to ‘Products’ from the left menu bar. You can add either a new item or edit an existing one.

1. Edit or Create a Product and scroll down to the Product Data Section.

Product data section

Here, choose the product type (for example Simple product or Variable Product) and fill out the basic required data in the General, Inventory, Shipping, and Linked Products menus.

2. Go to the Attributes menu.

Attribute menu

3. Here, you can see there is a dropdown menu that says Custom product attribute and an ‘Add’ button beside it.

Add custom product attributes

Click on the ‘Add’ button.

4. You will see that a custom attribute section has been created.

Add Custom product attribute

The ‘Name’ field refers to the Attribute name, and the ‘Value(s)’ field refers to the Attribute terms. Fill them out as required.

5. Fill out the required values as per your requirements.

Let’s say I am selling a t-shirt that has both Long sleeves and short sleeves. So let’s name it ‘Sleeves’.

For the ‘Value(s)’, you have to add values with a ‘|’ separator. So let’s add the terms ‘Long|Short’.

Custom Product Attributes - Sleeves

And on the left side, you can see the option “Visible on the product page”. That is check-marked by default, which means this attribute term will be displayed on the Product page.

If it’s a variable product, then you may wish to use these attribute terms to create variants. In that case, you can mark the check box that says used for variations (right above the Save Attribute button), and later, generate variants from the Variations tab on the left side.

6. Then click on the Save attribute button and this attribute will be saved for this product.

So based on your theme, this attribute will be displayed on the product page.

When Should You Use Custom Product Attributes

As mentioned earlier, a custom product attribute can be created when you edit or add a product in the product data section.

You should use the custom product attribute when you want to define a feature for a product that is applicable to that product only.

For example, if you are selling ‘Organic Tea’ in bulk, you might want to sell them in packs of 10 Sachets, 20 Sachets, and 50 Sachets per order. However, this sort of custom order package might not apply to other products in your WooCommerce store.

In this case, you should use a custom product attribute to define this feature, and possibly use it for variations.

So to conclude, you should create and use custom product attributes when you want to define a feature that applies to a particular product only.

This will save you time from creating a global attribute separately and help to optimize the use of server resources.


As you can see, it is often more convenient to use a custom product attribute, and hopefully, this guide was easy to follow.

Feel free to let us know your thoughts on this guide in the comments below.


Related posts

About Author

Shammi Rahman

Shammi is an easy-going young WordPress enthusiast who loves to write about WordPress. She works as a dedicated Product Marketing Manager at RexTheme. Follow her on twitter @ShammiRahman13


  • Hi Shammi. Great article. Thanks for sharing. Question if you don’t mind … You say that by using a custom attribute it can “optimize server resources”. This makes sense when that attribue is unique. However, what about always using custom attributes? I mean a situation where the shop admin continually creates them on each product – even though they are not unique to that product, they are adding the same custom ones all the time – would that be equally bad for resources? I suppose, in other words, what is the disadvantage – if any – of using custom attributes all the time?

    • Hi Conor,

      That’s a good question. You can see I used the phrase “optimize the use of server resources.” This means, if you use global attributes and custom attributes sensibly, then you can make the best use of server resources when it comes to attributes.

      You see, when you add global attributes, they are available for selection when you edit any product. So, having too many global attributes can contribute to server stress.

      Again, suppose you plan on using custom attributes for all your products. In that case, it will put overall stress on the site’s database and server because that will mean you can have a lot more attribute values added cumulatively.

      Plus, adding custom attributes every time will just waste your time, especially when you have a lot of products. For example, if you have a thousand products with a Color attribute, imagine how long you will waste by adding that as a custom attribute for each product. Rather, a global attribute will require you to add it only once.

      So both global and custom attributes have their own advantages and disadvantages. It’s up to you to use them in an optimized way for better performance of your site.

      Hope this made sense.

      Let me know if you have any further thoughts.


Leave a Comment

Your email address will not be published. Required fields are marked *