public function testGetMediaAttributeValues()
 {
     $this->setupMediaAttributes();
     $this->model->setData('image', 'imageValue');
     $this->model->setData('small_image', 'smallImageValue');
     $expectedMediaAttributeValues = ['image' => 'imageValue', 'small_image' => 'smallImageValue'];
     $this->assertEquals($expectedMediaAttributeValues, $this->model->getMediaAttributeValues());
 }
Example #2
0
 public function testGetMediaAttributeValues()
 {
     $this->mediaConfig->expects($this->once())->method('getMediaAttributeCodes')->willReturn(['image', 'small_image']);
     $this->model->setData('image', 'imageValue');
     $this->model->setData('small_image', 'smallImageValue');
     $expectedMediaAttributeValues = ['image' => 'imageValue', 'small_image' => 'smallImageValue'];
     $this->assertEquals($expectedMediaAttributeValues, $this->model->getMediaAttributeValues());
 }
 /**
  * @param Product $product
  * @param array $rowData
  * @return ProductAttributeMediaGalleryEntryInterface $entry
  */
 public function convertTo(Product $product, array $rowData)
 {
     $image = $rowData;
     $productImages = $product->getMediaAttributeValues();
     if (!isset($image['types'])) {
         $image['types'] = array_keys($productImages, $image['file']);
     }
     $entry = $this->mediaGalleryEntryFactory->create();
     $this->dataObjectHelper->populateWithArray($entry, $image, '\\Magento\\Catalog\\Api\\Data\\ProductAttributeMediaGalleryEntryInterface');
     if (isset($image['value_id'])) {
         $entry->setId($image['value_id']);
     }
     return $entry;
 }
 /**
  * {@inheritdoc}
  */
 public function getMediaAttributeValues()
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getMediaAttributeValues');
     if (!$pluginInfo) {
         return parent::getMediaAttributeValues();
     } else {
         return $this->___callPlugins('getMediaAttributeValues', func_get_args(), $pluginInfo);
     }
 }
Example #5
0
 /**
  * Method getting full media gallery for current Product
  * Array structure: [
  *  ['image'] => 'http://url/pub/media/catalog/product/2/0/blabla.jpg',
  *  ['mediaGallery'] => [
  *      galleryImageId1 => simpleProductImage1.jpg,
  *      galleryImageId2 => simpleProductImage2.jpg,
  *      ...,
  *      ]
  * ]
  * @param ModelProduct $product
  * @return array
  */
 public function getProductMediaGallery(ModelProduct $product)
 {
     if (!in_array($product->getData('image'), [null, self::EMPTY_IMAGE_VALUE], true)) {
         $baseImage = $product->getData('image');
     } else {
         $productMediaAttributes = array_filter($product->getMediaAttributeValues(), function ($value) {
             return $value !== self::EMPTY_IMAGE_VALUE && $value !== null;
         });
         foreach ($productMediaAttributes as $attributeCode => $value) {
             if ($attributeCode !== 'swatch_image') {
                 $baseImage = (string) $value;
                 break;
             }
         }
     }
     if (empty($baseImage)) {
         return [];
     }
     $resultGallery = $this->getAllSizeImages($product, $baseImage);
     $resultGallery['gallery'] = $this->getGalleryImages($product);
     return $resultGallery;
 }
Example #6
0
 /**
  * @param Product $product
  * @param Store $store
  * @return string|null
  */
 protected function buildImageUrl(Product $product, Store $store)
 {
     $primary = $this->_dataHelper->getProductImageVersion($store);
     $secondary = 'image';
     // The "base" image.
     $media = $product->getMediaAttributeValues();
     $image = isset($media[$primary]) ? $media[$primary] : (isset($media[$secondary]) ? $media[$secondary] : null);
     if (empty($image)) {
         return null;
     }
     return $product->getMediaConfig()->getMediaUrl($image);
 }