In an e-commerce system, categorization is key to organizing products in a way that makes them easy for shoppers to find.

While categories is a term that's intuitive and widely understood, the concepts of taxonomies and taxons provide a more flexible and hierarchical way to organize information.

Why not just "categories"?

Think about a simple online store that starts with broad categories like "Men," "Women," and "Kids." This is straightforward at first, but as you expand your inventory, you might want to introduce more specific classifications like type of clothing, brands, seasons, or price ranges.

If Vanilo would only use a flat structure of "categories," such an expansion would become messy and hard to manage.

Taxonomies and Taxons

Taxonomy is one specific aspect of classification. In e-commerce, a taxonomy could be "Categories," "Brands," "Price Range," "Occasion," etc.

Taxon on the other hand, refers to the individual group within the classification (taxonomy).

For example, under the "Categories" taxonomy, you might have taxons like "Men's Clothing," "Women's Clothing," "Footwear," etc. These are the specific, individual categories within the larger structure where actual products are placed.

Example 1 - Clothes

Category                <- Taxonomy
├─> Men                 <- Taxon
│   └> T-shirts         <- Taxon
│   └> Jeans            <- Taxon
└─> Women               <- Taxon
    └> Skirts           <- Taxon
    └> Accessories      <- Taxon

Example 2 - Wine Shop Regions

Region                  <- Taxonomy
├─> France              <- Taxon
│   └> Bordeaux         <- Taxon
│   └> Côtes du Rhone   <- Taxon
└─> Italy               <- Taxon
    └> Veneto           <- Taxon
    └> Tuscany          <- Taxon
    └> Piedmont         <- Taxon

Example 3 - Wine Shop Varietals

Varietal                <- Taxonomy
├─> Red                 <- Taxon
│   └> Cabernet Franc   <- Taxon
│   └> Merlot           <- Taxon
│   └> Porto            <- Taxon
├─> White               <- Taxon
│   └> Muscat Ottonel   <- Taxon
│   └> Tokaji           <- Taxon
│   └> Furmint          <- Taxon
└─> Rosé                <- Taxon
    └> Cabernet Franc   <- Taxon
    └> Cuvée            <- Taxon

In practice, when setting up an e-commerce site, you'd decide on your taxonomies based on how you want to classify your products. Then, within each taxonomy, you'd create various taxons that make sense for your inventory. This structure helps keep your site organized and makes it easier for customers to navigate and find what they're looking for.


Taxonomies have the following attributes:

  • name: the name of the taxonomy, eg. "Brands"
  • slug: the identifier of the taxonomy to be used in URLs (eg. brands)
  • a collection of images
  • getRootLevelTaxons(): returns all the top level taxons within the taxonomy

What is a slug?

A slug is the part of a URL that uniquely identifies a specific page, product, category, etc on a website in a readable way.

For example, in the URL, the slug is iphone-11-grey. It's human-readable, meaning it usually contains words rather than numbers or special characters) and it describes the content or the title of the page it leads to.

Taxons have the following attributes:

  • name: the name of the taxon, that should be displayed for shoppers, eg. "Levi's®"
  • slug: the identifier of the taxon to be used in URLs, eg. levis
  • parent: The parent taxon, or null if it is a top level taxon
  • taxonomy: The taxonomy the taxon belongs to
  • priority: A number that is being used to order the taxons
  • ext_title: Extended title, optional (you can use them freely wherever you want)
  • meta_description: Meta description, optional (you can use them freely wherever you want)
  • meta_keywords: Meta keywords, comma separated, optional (you can use them freely wherever you want)
  • a collection of images