I want to load another Product on the catalog product view page using the the default Magento\Catalog\Block\Product\View Block and trying to load the product via SKU in an custom template file
<block class="Magento\Catalog\Block\Product\View" name="product.bundle.options" as="bundle.options" template="product/view/bundle-options.phtml" group="detailed_info">
I thought I could use the View.php because it uses the ProductRepository inside Magento\Catalog\Block\Product\View.php:
use Magento\Catalog\Api\ProductRepositoryInterface
Line: 8
ProductRepositoryInterface $productRepository
Line: 89
and inside the Magento\Catalog\Api\ProductRepositoryInterface.php
resides the function
/**
* Get info about product by product SKU
*
* @param string $sku
* @param bool $editMode
* @param int|null $storeId
* @param bool $forceReload
* @return \Magento\Catalog\Api\Data\ProductInterface
* @throws \Magento\Framework\Exception\NoSuchEntityException
*/
public function get($sku, $editMode = false, $storeId = null, $forceReload = false);
Now trying to load the a product in the template file
<?php
$sku = '235039';
$product = $this->productRepository->get($sku);
var_dump($product);
?>
Result: Page Breaks
trying to use $this->_productRepository->get($sku);
(with underscore) give me this output:
1 exception(s): Exception #0 (Exception): Notice: Undefined property: Magento\Catalog\Block\Product\View\Interceptor::$_productRepository in /var/www/<magentoroot>/vendor/magento/framework/View/TemplateEngine/Php.php on line 110
Question:
do i have missed something? Why can't I load the product using the get Function. And I do not want to Integrate the Object Manager because the ProductRepository should be included in the View.php and I also do not want to create a own block using the Dependency Injection, just so I can load a product. I just want to use the default View.php. It should be possible, right?