<p>I read and reread <a href="https://craftcms.stackexchange.com/questions/15930/are-categories-the-best-way-to-organize-commerce-product-filters?noredirect=1&amp;lq=1">#15930</a> and it suggested that I should create one Product Type for each unique kind of product -- which would be something like: </p>

<p><strong>Product Types</strong></p>

<ul>
<li>Sewing machine</li>
<li>Chair</li>
<li>Scissor</li>
</ul>

<p>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:</p>

<p><strong>Field Groups</strong></p>

<ul>
<li><p>General</p>

<ul>
<li>Name</li>
<li>Image</li>
<li>Manufacturer</li>
<li><strong>Product Family</strong> &lt;-- category</li>
<li>etc.</li>
</ul></li>
<li><p>Sewing machine</p>

<ul>
<li>Usage area</li>
<li>Machine type</li>
<li>etc.</li>
</ul></li>
<li><p>Thread</p>

<ul>
<li>Thickness</li>
<li>Material</li>
<li>etc.</li>
</ul></li>
</ul>

<p>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: </p>

<p><strong>Product Family</strong></p>

<ul>
<li>Textile

<ul>
<li>Sewing Machines</li>
<li>Steam pressers

<ul>
<li>Cabinets</li>
<li>Tables</li>
<li>Dollies</li>
<li>Accessories</li>
</ul></li>
<li>etc.</li>
</ul></li>
<li>Profiling

<ul>
<li>Embroidery </li>
<li>T-shirt printers</li>
<li>Laser engraving machines</li>
<li>etc.</li>
</ul></li>
</ul>

<p>I've verified this with Nathaniel Hammon from Pixel &amp; 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 &amp; discounts) functionality that is built into Commerce"</p>

<p><strong>Field layout</strong></p>

<p>I went ahead and created the following categories: </p>

<pre><code>General: Product Family
General: Supplier (manufacturer)
General: Intended audience
Sewing Machine: Application
Sewing Machine: Stitch type
Sewing Machine: Type
...
</code></pre>

<p>I then created the following field groups: </p>

<pre><code>Product
Sewing Machines
...
</code></pre>

<p>Then I created the folloing Product Types (in Commerce):</p>

<pre><code>Other products
Sewing Machines
...
</code></pre>

<p>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:</p>

<p><a href="https://i.sstatic.net/YEa6P.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/YEa6P.png" alt="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"></a></p>

<p>The general fields come from the general field group and the details-fields come from the Sewing Machine field group.</p>

<p><strong>Final thoughts</strong></p>

<p>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.</p>

CC BY-SA 4.0
2019-11-13T08:41:29.627Z
2019-11-13T08:41:29.627Z
nitech
<p>I am setting up a Craft CMS site with Craft Commerce for a B2B-customer. </p>

<p>Here is a little excerpt of their product type hierarchy: </p>

<ul>
<li>Textile

<ul>
<li>Sewing machines</li>
<li>Heavy Duty Machines</li>
<li>Furniture machines</li>
<li>Knitting machines</li>
<li>Scissors</li>
<li>Thread</li>
</ul></li>
<li>Ergonomics

<ul>
<li>Chairs</li>
</ul></li>
</ul>

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

<ul>
<li>Area of usage</li>
<li>Sewing machine type </li>
<li>Number of needles</li>
</ul>

<p>For scissors it could be: </p>

<ul>
<li>Scissor type</li>
<li>Left or right hand?</li>
</ul>

<h2>An example</h2>

<p>Take the following screenshot from Gearbest.com:</p>

<p><a href="https://i.sstatic.net/p2dIH.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/p2dIH.png" alt="Screenshot from Gearbest.com showing product taxonomy"></a></p>

<p>I've outlined the taxonomies. </p>

<h2>Questions</h2>

<ol>
<li><p>How should I organize the product hierarchy? (Using Categories?)</p></li>
<li><p>Considering that the taxonomies differ between product types, how should I assign the different taxonomies to products (System Support, Features, Application, Brand from screenshot)</p></li>
<li><p>Should each of the types I've described here become individual Product Types in Craft Commerce? (Heavy Duty Machines, Furniture machines, Chairs, Thread etc)</p></li>
</ol>

<plugin-craftcommerce2>
Recommended way to organize product types and fields in Craft Commerce
# Recommended way to organize product types and fields in Craft Commerce

(Asked by: username_0 on 2019-10-02)

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](https://i.sstatic.net/p2dIH.png)](https://i.sstatic.net/p2dIH.png)

I've outlined the taxonomies.

## Questions

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)

**Tags:** plugin-craftcommerce2


---

## 1 answers

### Answer by username_0 on 2019-11-13. Score: 2 | Accepted answer

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: 
Product
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:

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.


---

