I am setting up a Craft CMS site with Craft Commerce for a B2B-customer.

Here is a little excerpt of their product type hierarchy:

  • Textile
    • Sewing machines
    • Heavy Duty Machines
    • Furniture machines
    • Knitting machines
    • Scissors
    • Thread
  • Ergonomics
    • Chairs

Each product type have their own set of taxonomies that describe the product. For Sewing Machines, it could be:

  • Area of usage
  • Sewing machine type
  • Number of needles

For scissors it could be:

  • Scissor type
  • Left or right hand?

An example

Take the following screenshot from Gearbest.com:

Screenshot from Gearbest.com showing product taxonomy

I've outlined the taxonomies.


  1. How should I organize the product hierarchy? (Using Categories?)

  2. Considering that the taxonomies differ between product types, how should I assign the different taxonomies to products (System Support, Features, Application, Brand from screenshot)

  3. Should each of the types I've described here become individual Product Types in Craft Commerce? (Heavy Duty Machines, Furniture machines, Chairs, Thread etc)

1 Answer 1


I read and reread #15930 and it suggested that I should create one Product Type for each unique kind of product -- which would be something like:

Product Types

  • Sewing machine
  • Chair
  • Scissor

Each of these product types would then have their own set of fields - some being reused accross all or multiple product types, while some being specific for one product type:

Field Groups

  • General

    • Name
    • Image
    • Manufacturer
    • Product Family <-- category
    • etc.
  • Sewing machine

    • Usage area
    • Machine type
    • etc.
  • Thread

    • Thickness
    • Material
    • etc.

Product Family (from General) would be a Category-field that lets me select one or multiple categories that the product would belong to. Product Family would look something like this:

Product Family

  • Textile
    • Sewing Machines
    • Steam pressers
      • Cabinets
      • Tables
      • Dollies
      • Accessories
    • etc.
  • Profiling
    • Embroidery
    • T-shirt printers
    • Laser engraving machines
    • etc.

I've verified this with Nathaniel Hammon from Pixel & Tonic. He adds that "An added benifit of using categories", what I call Product Family, "is that you are able to use them in conjunction with the promotions (sales & discounts) functionality that is built into Commerce"

Field layout

I went ahead and created the following categories:

General: Product Family
General: Supplier (manufacturer)
General: Intended audience
Sewing Machine: Application
Sewing Machine: Stitch type
Sewing Machine: Type

I then created the following field groups:

Sewing Machines

Then I created the folloing Product Types (in Commerce):

Other products
Sewing Machines

Then I split the field layout for Sewing Machines into two tabs: One for general data, not specifically associated with sewing machines and one for sewing machines specifically:

Field layout for sewing machines divided into two tabs: One for general data, not specifically associated with sewing machines and one for sewing machines specifically

The general fields come from the general field group and the details-fields come from the Sewing Machine field group.

Final thoughts

I have not yet implemented a filter, like the one in the question. I'll revisit this post and update you when I've progressed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.