magento2
Конфигурируемые продукты и их варианты.
Поиск…
Получите родительский продукт и его детей.
Здесь я покажу вам, как получить
- Все родительские (конфигурируемые продукты)
- Родительский продукт и все его дети.
Получите родительский продукт.
Мы начнем с создания простого класса, который получит все наши родительские (настраиваемые продукты)
<?php
namespace Test\Test\Controller\Test;
use Magento\Framework\App\Action\Context;
class Products extends \Magento\Framework\App\Action\Action
{
public function __construct(
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $_product_res_fac
)
{
$this->_product_res_fac = $_product_res_fac;
}
public function getParentProducts()
{
return $this->_product_res_fac->create()->addAttributeToSelect('*')->addAttributeToFilter('type_id', ['eq' => 'configurable']);
}
}
Как вы видите выше, наша функция getParentProducts теперь возвращает все настраиваемые продукты, которые мы имеем в нашей системе.
Получите родительские и дочерние продукты.
Здесь мы сначала получаем наш родительский продукт, и мы получим все дочерние продукты, которые есть у этого родителя.
<?php
namespace Test\Test\Controller\Test;
use Magento\Framework\App\Action\Context;
class Products extends \Magento\Framework\App\Action\Action
{
public function __construct(
\Magento\Catalog\Model\Product $productModel
)
{
$this->product= $productModel;
}
public function getParentProduct()
{
return $this->product->load("a product entity id goes here")
}
public function getChildProducts()
{
$_children = $this->getParentProduct()->getTypeInstance()->getUsedProducts($this->getParentProduct());
}
}
Функция getChildProducts теперь возвращает дочернюю коллекцию, поэтому вы сможете запустить ее через цикл foreach и получить все атрибуты продукта, которые могут быть на нем.
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow