/** * * @return RequestValidator */ public function buildValidator(Product $product) { $validator = $this->getValidator("productFormValidator", $this->request); $validator->addCheck('name', new IsNotEmptyCheck($this->translate('_err_name_empty'))); // check if SKU is entered if not autogenerating if ($this->request->get('save') && !$product->isExistingRecord() && !$this->request->get('autosku')) { $validator->addCheck('sku', new IsNotEmptyCheck($this->translate('_err_sku_empty'))); } // check if entered SKU is unique if ($this->request->get('sku') && $this->request->get('save') && (!$product->isExistingRecord() || $this->request->isValueSet('sku') && $product->getFieldValue('sku') != $this->request->get('sku'))) { ClassLoader::import('application.helper.check.IsUniqueSkuCheck'); $validator->addCheck('sku', new IsUniqueSkuCheck($this->translate('_err_sku_not_unique'), $product)); } // validate price input in all currencies if (!$product->isExistingRecord()) { self::addPricesValidator($validator); self::addShippingValidator($validator); self::addInventoryValidator($validator); } if ($this->isQuickEdit) { // nothing now } else { // quick edit forms does not have specification fields $product->getSpecification()->setValidation($validator); } self::addPricesValidator($validator); self::addShippingValidator($validator); self::addInventoryValidator($validator); return $validator; }