
Як розробник Magento 2, ви знаєте, що певне кодування неминуче для успішної роботи магазину. Існує багато завдань, які вам потрібно виконати програмно, особливо коли йдеться про отримання певної інформації, такої як дані клієнта та ідентифікатор клієнта або значення конфігурації .
Одним з них також є отримання продукту за SKU в Magento 2. І в цій статті ви дізнаєтеся більше про два можливі способи зробити це.
Отримання продукту за SKU за допомогою ін'єкції залежностей
Ін'єкція залежностей є одним з найпоширеніших рішень, коли йдеться про отримання продукту за SKU в Magento. Це досить просто, але не менш ефективно.
Отже, щоб застосувати метод впровадження залежностей, перейдіть до вашого phtml-файлу блоку та створіть функцію _construct :
<?php
namespace Vendor\ModuleName;
class ClassName
{
public $productRepository;
public function __construct(
\Magento\Catalog\Api\ProductRepositoryInterface $productRepository
) {
$this->productRepository = $productRepository;
}
public function getProductBySky($sku)
{
return $this->productRepository->get($sku);
}
}
Тепер ви можете отримати продукт за SKU у phtml-файлі:
<?php $product = $block->getProductBySky($productSku); ?>
Отримати продукт за SKU за допомогою менеджера об'єктів
Менеджер об'єктів – ще один варіант, який ви можете розглянути. Ви можете використовувати його таким чином:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
use Magento\Framework\App\Bootstrap;
require __DIR__ . '/app/bootstrap.php';
$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();
$state = $objectManager->get(Magento\Framework\App\State::class);
$state->setAreaCode('adminhtml');
$productRepository = $objectManager->create(\Magento\Catalog\Api\ProductRepositoryInterface::class);
$productSku = '24-MB05';
$product = $productRepository->get($productSku);
Примітка: Наполегливо рекомендуємо уникати прямого використання менеджера об'єктів, оскільки він приховує реальні залежності класу.
Сміливо вибирайте метод, який вам подобається, та отримуйте продукт за SKU в Magento 2 практично без зусиль.
Звичайно, є багато інших прикладів, де потрібно застосовувати кодування. Кожна ситуація вимагає різного набору команд. Очевидно, що важко запам'ятати їх усі. Тому вам потрібно мати під рукою список корисних команд Magento 2 .