Як отримати ідентифікатор батьківського продукту в magento 2?


11

Як отримати ідентифікатор батьківського продукту дитини в Magento 2 для продуктів, що настроюються?

Я хочу отримати ідентифікатор батьківського продукту в Magento на основі ідентифікатора дитячого продукту.

Відповіді:


26

Щоб отримати ідентифікатор батьківського продукту у вашому файлі phtml, ви можете зателефонувати безпосередньо за цим кодом:

    $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
Не слід використовувати каталог менеджера об'єктів. Введіть фабрику, використовуючи метод
CarComp

@Rakesh після отримання настроюваного ідентифікатора продукту, як я можу отримати лише всі деталі щодо конкретного настроюваного продукту? Чи можу я завантажити модель продукту через ідентифікатор батьківського продукту?
Санджай Гохіл

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???
Імран Загор
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.