Fix adding query args
Introduce product type classes
Introduce variation and variation attribute entities
Move variable parts into Variable type definition
Add ability to add variations
Add ability to remove variation
Add ability to update variation attributes
Add variation backing product creation