获取父产品:Magento 2 中的捆绑产品、分组产品
Magento 2 支持两种类型的父产品,包括捆绑产品和分组产品。
今天我将引导您以简单的方式获取父产品:Magento 2 中的捆绑产品和分组产品。捆绑产品和分组产品是您可以从Magento 2 商店后端创建的两种产品类型,它们包括一些子产品。您想知道如果您持有子产品的 id,是否可以获得父产品的 id。这里是指导您应该做什么的正确地方。让我们来看看每种产品类型的代码片段。
捆绑产品
进入类Magento\Bundle\Model\Product\Type
,有两个函数:
/**
* Retrieve Required children ids
* Return grouped array, ex array(
* group => array(ids)
* )
*
* @param int $parentId
* @param bool $required
* @return array
*/
public function getChildrenIds($parentId, $required = true)
{
return $this->_bundleSelection->getChildrenIds($parentId, $required);
}
/**
* Retrieve parent ids array by required child
*
* @param int|array $childId
* @return array
*/
public function getParentIdsByChild($childId)
{
return $this->_bundleSelection->getParentIdsByChild($childId);
}
Configurable product: You can see the class Magento\ConfigurableProduct\Model\Product\Type\Configurable, it also has two functions:
/**
* Retrieve Required children ids
* Return grouped array, ex array(
* group => array(ids)
* )
*
* @param array|int $parentId
* @param bool $required
* @return array
*/
public function getChildrenIds($parentId, $required = true)
{
return $this->_catalogProductTypeConfigurable->getChildrenIds($parentId, $required);
}
/**
* Retrieve parent ids array by required child
*
* @param int|array $childId
* @return array
*/
public function getParentIdsByChild($childId)
{
return $this->_catalogProductTypeConfigurable->getParentIdsByChild($childId);
}
分组产品
Magento\GroupedProduct\Model\Product\Type\Grouped 类:
/**
* Retrieve Required children ids
* Return grouped array, ex array(
* group => array(ids)
* )
*
* @param int $parentId
* @param bool $required
* @return array
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function getChildrenIds($parentId, $required = true)
{
return $this->productLinks->getChildrenIds(
$parentId,
\Magento\GroupedProduct\Model\ResourceModel\Product\Link::LINK_TYPE_GROUPED
);
}
/**
* Retrieve parent ids array by requested child
*
* @param int|array $childId
* @return array
*/
public function getParentIdsByChild($childId)
{
return $this->productLinks->getParentIdsByChild(
$childId,
\Magento\GroupedProduct\Model\ResourceModel\Product\Link::LINK_TYPE_GROUPED
);
}
您要在上面的类中引用的两个函数是getChildrenIds
和getParentIdsByChild
。这样,定义产品类型是前提,所以当然可以加载产品并声明函数,getTypeInstance
如下所示:
$product->getTypeInstance()->getParentIdsByChild($child->getId());
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。