В Magento 2 вы можете передать переменную продукта из родительского блока в дочерний блок несколькими способами. Вот несколько методов с примерами кода:
Метод 1: использование аргументов блока
Родительский блок (файл phtml):
<?php
echo $block->getChildHtml('child_block', false, ['product' => $product]);
?>
Дочерний блок (php-файл):
<?php
$product = $block->getData('product');
// Use the $product variable as needed
?>
Метод 2: использование метода setProduct() блока
Родительский блок (php-файл):
<?php
$block->getChildBlock('child_block')->setProduct($product);
?>
Дочерний блок (php-файл):
<?php
$product = $block->getProduct();
// Use the $product variable as needed
?>
Метод 3: использование реестра
Родительский блок (php-файл):
<?php
$registry = $block->getLayout()->createBlock(\Magento\Framework\View\Element\Template::class);
$registry->setData('product', $product);
echo $block->getChildHtml('child_block');
?>
Дочерний блок (php-файл):
<?php
$product = $this->_registry->registry('product');
// Use the $product variable as needed
?>
Не забудьте заменить 'child_block'фактическим именем или псевдонимом вашего дочернего блока.