Як отримати продукт за ID в Magento 2?

Попри те, що Magento 2 — це дуже гнучка та легка в керуванні платформа електронної комерції, керувати онлайн-магазином іноді може бути досить складно. Так само, як отримання даних про замовлення за increment ID, отримання продуктів за ID, безумовно, є важливим вмінням.

Оскільки це одна з найпоширеніших операцій, які трапляються під час роботи з Magento, ви повинні знати, як її виконувати. Існує кілька можливих способів, і в цій статті ви дізнаєтесь, як використовувати кожен із них.

Отримайте продукт за ID використовуючи factory method

Найпоширенішим способом отримання продукту за ID у Magento 2 є застосування factory method. Для цього використайте такий код:

protected $_productFactory;
public function __construct(
\Magento\Catalog\Model\ProductFactory $productFactory
) {
$this->_productFactory = $productFactory;
}

Після цього, отримайте продукт за ID, виконавши таку команду:

$product = $this->_productFactory->create()->load($id);

Отримайте продукт за ID використовуючи API repository

API repository — це ще один метод, який ви можете обрати. Використайте такий код, щоб отримати об'єкти продукту:

protected $_productRepository;
public function __construct(
\Magento\Catalog\Api\ProductRepositoryInterface $productRepository
) {
$this->_productRepository = $productRepository;
}

Після цього виконайте описану нижче команду та отримайте продукт за ID:

$product = $this->_productRepository->getById($id);

Отримайте продукт за ID використовуючи object manager

Зрештою, object manager також дає змогу отримати продукт за ID у Magento. Ви, мабуть, знаєте, що це досить складний спосіб. Проте описаний нижче код допоможе вам отримати продукти за ID:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get('Magento\Catalog\Model\Product')->load($product_id);

Примітка: рекомендуємо уникати прямого використання методу object manager, оскільки він приховує справжні залежності класу.

Ось і все! Кожен із методів призначений для оптимізації процесу розробки. Просто оберіть той, який найкраще відповідає вашим вимогам.

Після того, як ви навчитеся отримувати продукт за ID, ви можете ще більше заглибитися у цю тему та дізнатися, як отримати колекцію продуктів за ID категорії в Magento. Це теж може стати в нагоді.