/** * @return Market_ProductModel * @throws Exception */ private function _setProductFromPost() { $productId = craft()->request->getPost('productId'); if ($productId) { $product = craft()->market_product->getById($productId); if (!$product) { throw new Exception(Craft::t('No product with the ID “{id}”', ['id' => $productId])); } } else { $product = new Market_ProductModel(); } $availableOn = craft()->request->getPost('availableOn'); $expiresOn = craft()->request->getPost('expiresOn'); $product->availableOn = $availableOn ? DateTime::createFromString($availableOn, craft()->timezone) : $product->availableOn; $product->expiresOn = $expiresOn ? DateTime::createFromString($expiresOn, craft()->timezone) : null; $product->typeId = craft()->request->getPost('typeId'); $product->enabled = craft()->request->getPost('enabled'); $product->promotable = craft()->request->getPost('promotable'); $product->freeShipping = craft()->request->getPost('freeShipping'); $product->authorId = craft()->userSession->id; $product->taxCategoryId = craft()->request->getPost('taxCategoryId', $product->taxCategoryId); if (!$product->availableOn) { $product->availableOn = new DateTime(); } $product->getContent()->title = craft()->request->getPost('title', $product->title); $product->slug = craft()->request->getPost('slug', $product->slug); $product->setContentFromPost('fields'); return $product; }