Получить родительское имя продукта из дочернего продукта
У меня есть модель продукта из модели товара заказа, которую я называю так:
$product = $orderItem->getProduct();
Проблема в том, что один из элементов заказа является дочерним продуктом из настраиваемого продукта, мне нужно получить родительское имя из этого продукта, есть ли способ это сделать?
2
Author: simple guy, 2018-02-20
3 answers
Попробуйте этот код:
$productId = 1; //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])){
$product = $objectManager->create('Magento\Catalog\Model\Product')->load($product[0]);
echo $product->getName();
}
2
Author: Jsparo30, 2018-02-20 08:22:24
Используйте этот код:
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){
$productId = $orderItem->getProduct()->getId();
$parentByChild = $this->_catalogProductTypeConfigurable->getParentIdsByChild($productId);
if(isset($parentByChild[0])){
//set id as parent product id...
$id = $parentByChild[0];
}
return $id;
}
В качестве альтернативы вы также можете использовать это:
$productId = $orderItem->getProduct()->getId(); //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];
}
1
Author: Manish Joy, 2018-02-20 07:59:07
$orderItem->getName()
следует вернуть имя родителей для настраиваемого продукта.
0
Author: steros, 2018-02-20 07:54:09