/** * Retrieve collection of gallery images * * @param \Magento\Catalog\Api\Data\ProductInterface $product * @return \Magento\Catalog\Model\Product\Image[]|null */ public function getGalleryImages(\Magento\Catalog\Api\Data\ProductInterface $product) { $images = $product->getMediaGalleryImages(); if ($images instanceof \Magento\Framework\Data\Collection) { foreach ($images as $image) { /** @var $image \Magento\Catalog\Model\Product\Image */ $image->setData('small_image_url', $this->imageHelper->init($product, 'product_page_image_small')->setImageFile($image->getFile())->getUrl()); $image->setData('medium_image_url', $this->imageHelper->init($product, 'product_page_image_medium')->constrainOnly(true)->keepAspectRatio(true)->keepFrame(false)->setImageFile($image->getFile())->getUrl()); $image->setData('large_image_url', $this->imageHelper->init($product, 'product_page_image_large')->constrainOnly(true)->keepAspectRatio(true)->keepFrame(false)->setImageFile($image->getFile())->getUrl()); } } return $images; }
/** * @param Product $product * @return array */ protected function getGalleryImages(Product $product) { $result = []; $mediaGallery = $product->getMediaGalleryImages(); if ($mediaGallery instanceof \Magento\Framework\Data\Collection) { foreach ($mediaGallery as $media) { $result[$media->getData('value_id')] = $this->getAllSizeImages($product, $media->getData('file')); } } return $result; }