Example #1
0
 /**
  * Validate product data
  *
  * @param Product\Validator $subject
  * @param Closure $proceed
  * @param Product $product
  * @param RequestInterface $request
  * @param \Magento\Framework\DataObject $response
  * @return bool
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function aroundValidate(\Magento\Catalog\Model\Product\Validator $subject, Closure $proceed, \Magento\Catalog\Model\Product $product, \Magento\Framework\App\RequestInterface $request, \Magento\Framework\DataObject $response)
 {
     if ($request->has('attributes')) {
         $product->setTypeId(\Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE);
     }
     $result = $proceed($product, $request, $response);
     $variationProducts = (array) $request->getPost('variations-matrix');
     if ($variationProducts) {
         $validationResult = $this->_validateProductVariations($product, $variationProducts, $request);
         if (!empty($validationResult)) {
             $response->setError(true)->setMessage(__('Some product variations fields are not valid.'))->setAttributes($validationResult);
         }
     }
     return $result;
 }