/** * Create a new product entry * * @param \Thelia\Core\Event\Product\ProductCreateEvent $event */ public function create(ProductCreateEvent $event) { $product = new ProductModel(); $product->setDispatcher($event->getDispatcher())->setRef($event->getRef())->setLocale($event->getLocale())->setTitle($event->getTitle())->setVisible($event->getVisible() ? 1 : 0)->setVirtual($event->getVirtual() ? 1 : 0)->setTaxRule(TaxRuleQuery::create()->findOneByIsDefault(true))->create($event->getDefaultCategory(), $event->getBasePrice(), $event->getCurrencyId(), $event->getTaxRuleId(), $event->getBaseWeight()); // Set the product template, if one is defined in the category tree $parentCatId = $event->getDefaultCategory(); while ($parentCatId > 0) { if (null === ($cat = CategoryQuery::create()->findPk($parentCatId))) { break; } if ($cat->getDefaultTemplateId()) { $product->setTemplateId($cat->getDefaultTemplateId())->save(); break; } $parentCatId = $cat->getParent(); } $event->setProduct($product); }