magento 2에서 상위 제품 ID를 얻는 방법은 무엇입니까?


11

구성 가능한 제품에 대해 Magento 2에서 자녀의 부모 제품 ID를 얻는 방법은 무엇입니까?

하위 제품 ID를 기반으로 Magento에서 하위 제품의 상위 제품 ID를 가져오고 싶습니다.

답변:


26

phtml 파일에서 상위 제품 ID를 얻으려면 다음을 통해 직접 코드를 호출 할 수 있습니다.

    $productId = 52; //this is child product id
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $product = $objectManager->create('Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable')->getParentIdsByChild($productId);
     if(isset($product[0])){
         //this is parent product id..
         echo $product[0];
    }

뷰 파일에서 잘 작동합니다.

7
오브젝트 관리자 디렉토리를 사용해서는 안됩니다. -> create 메소드를 사용하여 팩토리 주입
CarComp

구성 가능한 제품 ID를 얻은 후 @Rakesh는 특정 구성 가능한 제품에 대한 모든 세부 정보 만 얻는 방법은 무엇입니까? 상위 제품 ID를 통해 제품 모델을로드 할 수 있습니까?
Sanjay Gohil

12

Magento 고유의 방식으로 블록 파일로 호출 할 수 있습니다.

protected $_catalogProductTypeConfigurable;

public function __construct(
    \Magento\Catalog\Block\Product\Context $context,
    //for getting parent id of simple
    \Magento\ConfigurableProduct\Model\ResourceModel\Product\Type\Configurable $catalogProductTypeConfigurable,
    array $data = []
) {
    //for getting parent id of simple
    $this->_catalogProductTypeConfigurable = $catalogProductTypeConfigurable;
    parent::__construct($context, $data);
}

public function getProductData($id) {
    $parentByChild = $this->_catalogProductTypeConfigurable->getParentIdsByChild($id);
    if (isset($parentByChild[0])) {
        //set id as parent product id...
        $id = $parentByChild[0];
    }
    return $id;
}

부모 클래스가 지정되지 않았습니다! 나는 그것의 생각 Magento\Catalog\Block\Product\AbstractProduct???
Imran Zahoor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.