의존성 주입 (DI) 사용
다음은 의존성 주입을 사용하여 Magento 2의 제품 Id 및 SKU별로 제품 정보를 가져 오는 예제 코드입니다.
여기에서 모듈의 블록 클래스 생성자에 \ Magento \ Catalog \ Model \ ProductRepository 클래스의 객체를 주입하고 뷰 (.phtml) 파일에서 액세스해야합니다.
샘플 파일 경로 : app / code / 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에서 제품 ID 및 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>';