magento2
Konfigurowalne produkty i ich warianty.
Szukaj…
Zdobądź produkt nadrzędny i ich dzieci.
Tutaj pokażę ci, jak pobrać
- Wszystkie elementy nadrzędne (produkty konfigurowalne)
- Produkt macierzysty i wszystkie jego dzieci.
Uzyskaj produkt nadrzędny.
Zaczniemy od stworzenia prostej klasy, która zdobędzie wszystkich naszych rodziców (produkty konfigurowalne)
<?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']);
}
}
Jak widać powyżej, nasza funkcja getParentProducts zwróci teraz wszystkie konfigurowalne produkty, które aktualnie mamy w naszym systemie.
Uzyskaj produkty dla rodziców i dzieci.
Tutaj najpierw pobieramy nasz produkt nadrzędny, a my otrzymamy wszystkie produkty podrzędne, które ten rodzic ma.
<?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());
}
}
Funkcja getChildProducts zwraca teraz kolekcję potomną, aby można było uruchomić ją przez pętlę foreach i uzyskać wszystkie atrybuty produktu, które mogą się na niej znajdować.
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow