Як розробник Magento 2 ви знаєте, що без кодування не можливо обійтися для успішної роботи магазину. Є багато завдань, які вам потрібно виконати програмно, особливо коли йдеться про отримання певної інформації, як-от даних користувача за ID або значення налаштування (config value).
Одним із них є також отримання продукту за SKU в Magento 2. І в цій статті ви дізнаєтеся більше про два можливих шляхи виконання цього завдання.
Зміст [приховати]
Отримайте продукт за SKU через dependency injection
Dependency injection — це одне із найпоширеніших рішень коли йдеться про отримання продукту за SKU в Magento. Цей спосіб досить простий, проте не менш ефективний.
Отож, щоб застосувати метод dependency injection, підіть у phtml block file і створіть функцію a _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 через object manager
Object manager — це ще один варіант, який ви можете розглянути. Використати його можна наступним чином:
<?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);
Примітка: ми наполегливо рекомендуємо уникати прямого використання методу object manager, оскільки він приховує справжні залежності класу.
Обирайте метод, якому ви надаєте перевагу, і отримуйте продукт за SKU без зайвих зусиль.
Звичайно, є чимало інших прикладів, коли потрібно застосовувати кодування. Кожна ситуація вимагає іншого набору команд. Запам’ятати їх усіх звісно ж складно. Тому вам потрібно мати під рукою список корисних команд Magento 2.