You can either load the plugin with routes enabled to use default controller actions, or just use/extend the database structure and use your own controllers
ProductCategoryVariants are templates/common starting points for variants - when adding a new product in that category it is easy to toggle on that category variant so the product uses the variant
ProductCategoryVariantOptions are the various options for each category variant
ProductVariants are the assigning of category variants to a product. A product can have as many variants as it's category has category variants. A variant must exist at the category level in order to be assigned to a product.
Products can have many ProductSkus. A ProductSku is a specific combination of variant options - using a T-Shirt with a size and a color variant for example,
the ProductSku would be a Red XL T-Shirt. Not all variant combinations need be used.
ProductSkuVariantValues is where the variant values of each SKU are stored.
## Suggested Plugins
Use the CakeCarts plugin to quickly enable shopping cart functionality with your products [CakeCarts](https://packagist.org/packages/hi-powered-dev/cake-carts)