/** * Get all images of a product normalized. * * @param ProductInterface $product * @param string $sku * @param string $smallImageAttribute * @param string $baseImageAttribute * @param string $thumbnailAttribute * * @return array */ public function getNormalizedImages(ProductInterface $product, $sku = '', $smallImageAttribute = '', $baseImageAttribute = '', $thumbnailAttribute = '') { $imageValues = $product->getValues()->filter(function ($value) { return $value->getData() instanceof AbstractProductMedia && in_array($value->getData()->getMimeType(), array('image/jpeg', 'image/png', 'image/gif')); }); if ($sku === '') { $sku = $product->getIdentifier(); } $images = []; foreach ($imageValues as $imageValue) { $data = $imageValue->getData(); if ($imageData = $this->mediaManager->getBase64($data)) { $imageTypes = array_merge($imageValue->getAttribute()->getCode() == $smallImageAttribute ? [Webservice::SMALL_IMAGE] : [], $imageValue->getAttribute()->getCode() == $baseImageAttribute ? [Webservice::BASE_IMAGE] : [], $imageValue->getAttribute()->getCode() == $thumbnailAttribute ? [Webservice::THUMBNAIL] : []); $images[] = [(string) $sku, ['file' => ['name' => $data->getFilename(), 'content' => $imageData, 'mime' => $data->getMimeType()], 'label' => $data->getFilename(), 'position' => 0, 'types' => $imageTypes, 'exclude' => 0], 0, 'sku']; } } return $images; }