Magento 2中的Bundle,Grouped产品

今天,我将以简单的方式引导您获取父产品: Magento 2中的捆绑产品和分组产品。捆绑产品和分组产品是您可以从Magento 2商店后端创建的两种产品类型,它们包括一些子产品。您是否想知道如果您持有子产品的ID,是否可以获得父产品的ID。这里是指导您应该做的事情的正确场所。让我们来看看每种产品类型的代码片段。

捆绑产品

classMagento\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
   );
}

您想要在上面的类中引用的两个函数是getChildrenIdsgetParentIdsByChild。通过这种方式,定义产品类型是先决条件,因此当然,您可以加载产品并将函数声明getTypeInstance如下:

$product->getTypeInstance()->getParentIdsByChild($child->getId());

主题是您可以获得父产品的所有必需实现:Bundle和Grouped产品。当我帮助你缩短很多时间但仍能获得更高效的工作时,我感到非常高兴。

相关文章

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论