Introducing Brands

We’re excited to announce a major enhancement to WooCommerce. The popular Brands functionality, previously available only as a premium plugin, will now be integrated into WooCommerce core. This change allows us to provide an essential ecommerce feature out-of-the-box and opens up new possibilities for developers and store owners alike.

Starting with WooCommerce 9.4, to be released October 21, 2024, all functionality previously offered by the WooCommerce Brands plugin will now be part of WooCommerce core, and available to use for free.

What’s included?

The new Brands feature lets you create and manage brands for stores and assign them to products, similar to Categories. With brand short-codes, widgets, and blocks, you can create dedicated brand pages, display brand details on product pages, and help shoppers navigate stores using brand-specific navigation menus. Additionally, you can now limit coupon use to specific brands.

A screenshot of the Brands dashboard, under Products > Brands
Brands dashboard, under Products > Brands

Technical implementation

Brands are implemented as a custom taxonomy, similar to product categories. This allows for seamless integration with existing WooCommerce hooks and filters. Developers can extend and customize Brand functionality using familiar WordPress taxonomy functions and WooCommerce product data management APIs.

Enabling the feature

Although we are adding this feature WooCommerce 9.4, it will be initially disabled for all users. To enable Brands in a store, add the following snippet to the functions.php file of your active theme or via a plugin like Code Snippets:

add_action( 'init', function() {
    update_option( 'wc_feature_woocommerce_brands_enabled', 'yes' );
    update_option( 'woocommerce_remote_variant_assignment', 2 );
} );

Alternatively, you could run the following WP CLI commands to enable this feature:

wp option update wc_feature_woocommerce_brands_enabled 'yes'
wp option update woocommerce_remote_variant_assignment 2

The feature will be enabled for all users, starting with WooCommerce 9.6 (scheduled for December 30, 2024).

Migration guide

For sites currently using the WooCommerce Brands plugin, we’ve ensured a smooth transition path. When you upgrade to WooCommerce 9.4 and enable the core Brands feature, existing brand data will be automatically migrated. However, we recommend testing this process on a staging site first. Custom code interacting with the Brands plugin may need updates to work with the core implementation.

Known issues

To ensure a smooth transition for WooCommerce Brands plugin users, we merged the codebase as is, without changing any features or updating any flows. A list of open issues about this feature can be found here.

Testing the feature

The feature is now part of the official beta testing in the WooCommerce 9.4 beta, and can be enabled by the above snippet. We highly recommend testing this feature on your staging environment.

We’ve kicked off a GitHub Discussion for this topic, and we look forward to learning about your experience with this feature and any feedback you share with us.


23 responses to “Introducing Brands”

  1. Great news. Brands is a requirement in Google Shipping, the absence of this created cut/paste work for many. Just like the absence of EAN-field that just got into core.

    Premium plugins are great when they add value. These things are not that kind of “added” value. It is “expected” for many merchants and should be included right out of the box. So, thanks for doing this.

    Hopefully, more stuff like this going to be included in core. For example: the cost of a product

    1. Brent MacKinnon Avatar
      Brent MacKinnon

      Thanks Dave!

      We’re thinking about it the same way, and I think you’ll be pleased by some of our upcoming roadmap items. Can’t wait to share more!

  2. Lino Sabato Avatar
    Lino Sabato

    Great news.
    Talking about the EAN-field, I just realized that if you want to export products the EAN in not available in the drop down menu #select2-woocommerce-exporter-columns-results.
    It should be possible to export and import this new field too.

  3. Concerned Developer Avatar
    Concerned Developer

    Are you serious?

    init hook and update_option? this is nuts and not only because it resets cache…

    and don’t get me started on recommending Code Snippets plugin and security…

    1. Hey there,

      Thank you for the feedback!

      I updated the post to include instructions on how to enable Brands via WP CLI, so that it’s not necessary to install a custom PHP snippet.

      Let me know if this helps!

      1. Dude, I think you missed the point!

        It hooks into the init action, so the update_option function is triggering on every request to the site, also updating the object cache for those options. Terrible for performance and stability considering you should just be setting it once. Instead, do a check for the current value and only update it to the new value if needed. Also I’d probably use the admin_init hook at least, so it doesn’t fire on every front end request.

  4. I use product attribute as brands. Do you plan tool for migration from pa_ to brand?

    Thanks.

    1. Hey there,

      Thank you for the question!

      Brands is a new taxonomy and currently, there isn’t any way to automatically migrate from a custom brands implementation, like using product attributes as brands, to this taxonomy.

      Only brands previously created by the WooCommerce Brands plugin (https://woocommerce.com/products/brands/) will be automatically migrated, as the same taxonomy is used.

      1. What is the taxonomy used by WooCommerce Brands?

        1. Brent MacKinnon Avatar
          Brent MacKinnon

          @keysuck it should be product_brand

    2. I do the same. And it would be great if there is a tool to move data.

      Btw, Google merchant center asks 3 things
      Brand
      EAN (GTIN)
      MPN : Manufacturer product number

      Since you did 2 of them, why not add MPN to core? Just under EAN?

  5. medavidallsop Avatar
    medavidallsop

    I’ve added some discussion points here: https://github.com/woocommerce/woocommerce/discussions/52774

  6. This great news. I was.looking forward to this feature. Thx a lot!

    I’m going to check this out.

  7. Ok, so that’s useful for those that don’t already have brands set up manually via attributes. Why can’t we just use those as well?

    We have 90 different brands set up! Are we expected to start from scratch!??

    Very, very, very disappointed that the attibutes ‘link’ is just dropped!

    If someone from Woocommerce wants to come and set up all the brands again AND assign them to the 749 products we have, please step forward!!!

    1. Hi Loren, thanks for your comment.

      We want to clarify that you can absolutely continue using your existing custom attribute to represent brands, just as you’ve been doing.

      For stores that used the WooCommerce Brands plugin, all brands will automatically migrate to the new core Brands functionality with no additional setup required.

      In your case, since it sounds like you’ve created brands using a custom attributes, these won’t be automatically migrated to the new Brands feature. However, that doesn’t mean that your implementation will stop working.

      I hope that provides some clarity. Let me know if we understood your concern and if there’s any other way we can help.

  8. Since you merged the brand with Woo core, why not provide the option to export products by brand as a new feature?

    1. Brent MacKinnon Avatar
      Brent MacKinnon

      Good idea! I’ve added that to our Feature Request board, and will make sure the core product team sees it.

      you can see the request here:
      https://woocommerce.com/feature-request/provide-the-option-to-export-products-by-brand/

      Thanks Amir!

  9. I already have this custom taxonomy set via ACF Pro plugin. The exact same one. Now there are two “Brand” taxonomies in my Products tab. And my elementor was taking data from my custom one. Since there is the exactly same one, elementor is taking data from the second (newly added by wocommerce) which is empty, and this sucks in my case. How do I turn wocommerce’s Brand taxonomy off?

    1. Brent MacKinnon Avatar
      Brent MacKinnon

      Hi there, good question. There is a section in this recent post about enabling and disabling the brands feature, and it should have the info you need:

      https://developer.woocommerce.com/2025/01/17/enabling-brands-update-for-woocommerce-9-6/

  10. In our case, we had a custom brand taxonomy, and it seems that some of the brands were imported to the new core version. Core version usurped our Add Brands in product edit screen by appearing above it, so staff has been updating using the core version, oh, some of the time, at least. Two brand links under Products in sidebar. Searchanise is using our brand taxonomy. 373 still extant in our brands. 200+ in the Woo version. Client just asked about this last week. What… a… mess.

    1. I’m not sure how a bunch of brands got immediately pulled into product_brand, but they did. My initial instinct was to gravitate to the Woo version, but I had second thoughts, mainly due to Searchanise (smart search, product filters). We replaced all product_brand with brand and turned off Woo’s brands. A bit of grooming of the brands, but doable. May consider going to Woo’s at some point in the future.

      1. Shani Banerjee Avatar
        Shani Banerjee

        Hey Vic – thanks for sharing. Let us know your experience if you do end up switching over.

Leave a Reply

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