
Magento дозволяє створювати та налаштовувати 6 різних типи продуктів в адміністративній панелі. Кожен продукт має унікальну назву, ідентифікатор та інші пов'язані з ним деталі. Отже, після того, як ви навчитеся отримати поточну категорію , вам потрібно знати, як отримати поточний продукт у Magento 2.
Отримати поточний продукт у Magento 2
Щоб отримати поточну інформацію про продукт, вам потрібно використовувати Реєстр .
<?php
namespace VendorName\ModuleName\Folder;
class Example
{
private $registry;
public function __construct(
\Magento\Framework\Registry $registry
) {
$this->registry = $registry;
}
public function getCurrentProduct()
{
return $this->registry->registry('current_product');
}
}
?>
А тепер ви можете використовувати метод getCurrentProduct():
// print current product data
if ($currentProduct = $example->getCurrentProduct()) {
echo $currentProduct->getName() . '<br />';
echo $currentProduct->getSku() . '<br />';
echo $currentProduct->getFinalPrice() . '<br />';
echo $currentProduct->getProductUrl() . '<br />';
print_r ($currentProduct->getCategoryIds()) . '<br />';
}
Отримати поточний ID продукту в Magento 2
Якщо ви хочете отримати поточний ID продукту в Magento, ви можете використовувати наступний метод:
<?php
$currentProduct = $block->getCurrentProduct();
if ($currentProduct)
echo $currentProduct->getId();
} else {
echo 'There is no current product';
}
?>
Ви також можете використовувати менеджер об'єктів.
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get(\Magento\Framework\Registry::class)->registry('current_product'); //get current product
echo $product->getId();
?>
Примітка: вам слід уникати використання Менеджер об'єктів безпосередньо у вашому коді, оскільки це приховує реальні залежності класу.