Magento – How to add image roles programmatically in products Magento 2

magento2product-imagesrole

I am creating products programmatically. I am using below code to add product image.. Images are adding perfectly fine.. but image roles are not showing. Can anyone please help me to add image roles in product images programmatically.

$c_product = $ob->create('Magento\Catalog\Model\Product')->load($product->getId());
if(file_exists($image1))
    $c_product->addImageToMediaGallery($image1, array('image', 'small_image', 'thumbnail'), false, false);   

Best Answer

Use following code to add/remove image from product in Magento2. 
// Instance of object manager
$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 
*Remove Images From Product*/
$productId = ; // Id of product
$product = $objectManager->create('Magento\Catalog\Model\Product')->load($productId);
$productRepository = $objectManager->create('Magento\Catalog\Api\ProductRepositoryInterface');
$existingMediaGalleryEntries = $product->getMediaGalleryEntries();
foreach ($existingMediaGalleryEntries as $key => $entry) {
    unset($existingMediaGalleryEntries[$key]);
}
$product->setMediaGalleryEntries($existingMediaGalleryEntries);
$productRepository->save($product);
/*Add Images To The Product*/
$imagePath = "sample.png"; // path of the image
$product->addImageToMediaGallery($imagePath, array('image', 'small_image', 'thumbnail'), false, false);
$product->save();
Related Topic