निर्भरता इंजेक्शन (DI) का उपयोग करना
यहां निर्भरता इंजेक्शन का उपयोग करके Magento 2 में उत्पाद आईडी और SKU द्वारा उत्पाद जानकारी प्राप्त करने के लिए उदाहरण कोड है।
इसमें, हमें अपने मॉड्यूल के ब्लॉक वर्ग के निर्माता में \ Magento \ कैटलॉग \ मॉडल \ ProductRepository वर्ग की वस्तु को इंजेक्ट करने और इसे व्यू (.phtml) फ़ाइल से एक्सेस करने की आवश्यकता हो सकती है।
नमूना फ़ाइल पथ: ऐप / कोड / YourCompanyName / YourModuleName / Block / YourCustomBlock.php
<?php
namespace YourCompanyName\YourModuleName\Block;
class YourCustomBlock extends \Magento\Framework\View\Element\Template
{
protected $_productRepository;
public function __construct(
\Magento\Framework\View\Element\Template\Context $context,
\Magento\Catalog\Model\ProductRepository $productRepository,
array $data = []
) {
$this->_productRepository = $productRepository;
parent::__construct($context, $data);
}
public function getProductById($id) {
return $this->_productRepository->getById($id);
}
public function getProductBySku($sku) {
return $this->_productRepository->get($sku);
}
}
अब, हम अपने विचार (.phtml) फ़ाइल में निम्न प्रकार से कार्यों का उपयोग कर सकते हैं।
// get product by id
$product = $block->getProductById(15);
// get product by sku
$product = $block->getProductBySku('MT12');
echo $product->getEntityId() . '<br>';
echo $product->getName() . '<br>';
echo $product->getSKU() . '<br>';
echo $product->getPrice() . '<br>';
echo $product->getSpecialPrice() . '<br>';
echo $product->getTypeId() . '<br>';
echo $product->getProductUrl() . '<br>';
ऑब्जेक्ट मैनेजर का उपयोग करना
यहां Magento 2 में ऑब्जेक्ट आईडी का उपयोग करके उत्पाद आईडी और SKU द्वारा उत्पाद जानकारी प्राप्त करने के लिए उदाहरण कोड है।
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productRepository = $objectManager->get('\Magento\Catalog\Model\ProductRepository');
// get product by product id
$product = $productRepository->getById(15);
// get product by product sku
$product = $productRepository->get('MT12');
echo $product->getEntityId() . '<br>';
echo $product->getName() . '<br>';
echo $product->getSKU() . '<br>';
echo $product->getPrice() . '<br>';
echo $product->getSpecialPrice() . '<br>';
echo $product->getTypeId() . '<br>';
echo $product->getProductUrl() . '<br>';