Buscar..


Consigue un producto padre y sus hijos.

Aquí te mostraré cómo buscar

  1. Todos los padres (productos configuarbles)
  2. Un producto padre y todos sus hijos.

Consigue un producto padre.

Comenzaremos haciendo una clase simple que obtenga todos nuestros padres (productos configurables)

<?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']);
        }

    }

Como puede ver arriba, nuestra función getParentProducts ahora devolverá todos los productos configurables que tenemos actualmente en nuestro sistema.

Obtener productos para padres e hijos.

Aquí primero vamos a buscar nuestro producto principal y obtendremos todos los productos secundarios que tiene este principal.

<?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());
        }

    }

La función getChildProducts ahora devuelve una colección secundaria para que pueda ejecutarla a través de un bucle foreach y obtener todos los atributos del producto que puedan estar en ella.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow