public function create(Product\Product $product, array $options = [], Product\Unit\Unit $unit = null, $variantName = null) { if ($unit && !$variantName) { throw new \LogicException('You must set a variant name to make pages for individual variants'); } $options = $options + $this->_defaults; if (empty($options[Options::CREATE_PAGES])) { return false; } $variantValue = $unit ? $unit->getOption($variantName) : null; if (!$this->_allowDuplicates && $this->_exists->exists($product, $variantName, $variantValue)) { return false; } $page = $this->_getNewProductPage($product, $this->_getParentPage($product, $options), $variantValue); $page->publishDateRange = new DateRange(new \DateTime()); $this->_setProductPageContent($page, $product, $options, $variantName, $variantValue); return $this->_dispatcher->dispatch($page, $product, $options[Options::CSV_PORT], $unit); }