namespace My\Nosto\Observer\Product;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Catalog\Api\ProductRepositoryInterface;
class Load implements ObserverInterface
protected $productRepository;
public function __construct(
\Magento\Catalog\Helper\Image $imageHelper,
ProductRepositoryInterface $productRepository
$this->imageHelper = $imageHelper;
$this->productRepository = $productRepository;
* Observer for "nosto_product_load_after" event
* @param Observer $observer
* @throws \Magento\Framework\Exception\NoSuchEntityException
public function execute(Observer $observer)
/** @var $product \NostoProduct */
$product = $observer->getProduct();
$magentoProduct = $this->productRepository->getById($product->getProductId());
$resizedImageUrl = $this->imageHelper
->init($magentoProduct, 'product_base_image')
->constrainOnly(true) // Optional
->keepAspectRatio(true) // Optional
->keepTransparency(true) // Optional
->keepFrame(false) // Optional
->resize($width, $height)
$product->setImageUrl($resizedImageUrl);