Magento дозволяє створювати та налаштовувати 6 різних типів продуктів в адмін панелі. Кожен продукт має унікальну назву, ідентифікатор та інші пов’язані з ним деталі. Отже, після того, як ви навчитеся отримувати поточну категорію, ви повинні знати, як отримати поточний продукт в Magento 2.
Зміст [приховати]
Отримайте поточний продукт у Magento 2
Щоб отримати інформацію про поточний продукт, вам потрібно скористатися Registry.
<?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
Якщо ви хочете отримати ідентифікатор поточного продукту в Magento, ви можете скористатися таким методом:
<?php
$currentProduct = $block->getCurrentProduct();
if ($currentProduct)
echo $currentProduct->getId();
} else {
echo 'There is no current product';
}
?>
Ви також можете використовувати object manager.
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get(\Magento\Framework\Registry::class)->registry('current_product'); //get current product
echo $product->getId();
?>
Примітка: вам слід уникати безпосереднього використання ObjectManager у вашому коді, оскільки він приховує реальні залежності класу.