サーチ…


親製品とその子供を入手してください。

ここでは、フェッチする方法を示します

  1. すべての親(構成可能な製品)
  2. 親製品とそのすべての子。

親製品を入手してください。

私たちはすべての親を得るシンプルなクラスを作ることから始めます(構成可能な製品)

<?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