/** * Update data for configurable product configurations * * @param \Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $subject * @param \Magento\Catalog\Model\Product $configurableProduct * * @return \Magento\Catalog\Model\Product * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterInitialize(\Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper $subject, \Magento\Catalog\Model\Product $configurableProduct) { $configurations = $this->request->getParam('configurations', []); $configurations = $this->variationHandler->duplicateImagesForVariations($configurations); foreach ($configurations as $productId => $productData) { /** @var \Magento\Catalog\Model\Product $product */ $product = $this->productRepository->getById($productId, false, $this->request->getParam('store', 0)); $productData = $this->variationHandler->processMediaGallery($product, $productData); $product->addData($productData); if ($product->hasDataChanges()) { $product->save(); } } return $configurableProduct; }
/** * @dataProvider productDataProviderForProcessMediaGalleryForFillingGallery * @param array $productData * @param array $expected */ public function testProcessMediaGalleryForFillingGallery($productData, $expected) { $this->assertEquals($expected, $this->model->processMediaGallery($this->product, $productData)); }