/**
  * @throws \Craft\Exception
  * @throws \Exception
  */
 private function defaultProductTypes()
 {
     $productType = new Market_ProductTypeModel();
     $productType->name = 'Plain Shirts';
     $productType->handle = 'plainShirts';
     $productType->hasUrls = true;
     $productType->hasVariants = false;
     $productType->template = 'commerce/products/_product';
     $productType->urlFormat = 'commerce/products/{slug}';
     $fieldLayout = FieldLayoutModel::populateModel(['type' => 'Market_Product']);
     \Craft\craft()->fields->saveLayout($fieldLayout);
     $productType->asa('productFieldLayout')->setFieldLayout($fieldLayout);
     $variantFieldLayout = FieldLayoutModel::populateModel(['type' => 'Market_Variant']);
     \Craft\craft()->fields->saveLayout($variantFieldLayout);
     $productType->asa('variantFieldLayout')->setFieldLayout($variantFieldLayout);
     \Craft\craft()->market_productType->save($productType);
 }