Answers.Body: <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>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-11-13T08:41:29.627Z
Answers.LastActivityDate: 2019-11-13T08:41:29.627Z
Answers.UserDisplayName: nitech
Body: <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>
  
Tags: <plugin-craftcommerce2>
Title: Recommended way to organize product types and fields in Craft Commerce
ThreadText: # 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](https://craftcms.stackexchange.com/questions/15930/are-categories-the-best-way-to-organize-commerce-product-filters?noredirect=1&lq=1) 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:
  
  [![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](https://i.sstatic.net/YEa6P.png)](https://i.sstatic.net/YEa6P.png)
  
  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.
  
  
  ---
  
  