Classic approach for the master data is to define each object from an example (Category Tee-shirt / Product template Tee-shirt Saltoo Design / Product Variant Tee-shirt Saltoo Design in Blue). For complex master data, it's important to take time to define each concept - generally and regarding your business.
Comment: Conception of Master data is very often more expensive than the full integration of an ERP and will define the success of your integration.
Product Master Data is constructed around 4 objects in Odoo:
Product Category: define the global architecture of your product database.
Product template: Technical properties & BOM Template: intermediate theoritical step which includes a list of fixed properties, defined on the product template itself, and a list of potential declinaison which will generate the product variants. This intermediate level is used to organize, structure the master data but will never be used in the document, stock moves because there do not have any physical existence.
Product variant: Variant Attributes & Real BOM: last step of defined product, with a full definition of the BOM. The product you will sell - purchase - produce - define prices - track in stock.
Sales order line Attributes & On the fly computation: an option on product variant definition is to keep some unknown variable into the product variant and define it only on the sales order line. This sales order line attribute will not generate any master data but will be used into the process. Standard example is to give the length on the sales order line and to compute BOM Quantity based on sales order line length. It's on the fly computation and the product variant real BOM contains a formula and not a fixed value.
Comment: the whole challenge of master data definition is to find for each level the good level of definition and granularity - answer to your business complexity and avoid useless complexity.