Recherche…


Obtenez un produit parent et leurs enfants.

Ici je vais vous montrer comment aller chercher

  1. Tous les parents (produits configurables)
  2. Un produit parent et tous ses enfants.

Obtenez un produit parent.

Nous allons commencer par créer une classe simple qui reçoit tous nos parents (produits 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']);
        }

    }

Comme vous le voyez ci-dessus, notre fonction getParentProducts va maintenant renvoyer tous les produits configurables que nous avons actuellement dans notre système.

Obtenez des produits parents et enfants.

Nous allons d'abord chercher notre produit parent et nous obtiendrons tous les produits pour enfants que ce parent a.

<?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 fonction getChildProducts retourne maintenant une collection d'enfants afin que vous puissiez l'exécuter via une boucle foreach et obtenir tous les attributs de produit qui pourraient s'y trouver.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow