Magento:将与捆绑包关联的捆绑产品添加到购物车会返回错误,因为getSelectionByIds()

Magento:将与捆绑包关联的捆绑产品添加到购物车会返回错误,因为getSelectionByIds(),magento,bundle,Magento,Bundle,我需要一个特定的自定义扩展,我为Magento建设的帮助。我做了一个扩展,允许捆绑产品类型与父捆绑产品相关联 所以,把它想象成一个我正在销售的捆绑产品,键盘和鼠标,它与台式电脑捆绑在一起 我有它的管理工作,我有它显示在产品视图。然而,当我试图将这台台式计算机添加到我的购物车时,我遇到了一个问题。我能够找到一个名为*_prepareProduct*的函数,它位于/app/code/core/Mage/Bundle/Model/Product/Type.php下 下面是我发现问题的代码片段。如您所见

我需要一个特定的自定义扩展,我为Magento建设的帮助。我做了一个扩展,允许捆绑产品类型与父捆绑产品相关联

所以,把它想象成一个我正在销售的捆绑产品,键盘和鼠标,它与台式电脑捆绑在一起

我有它的管理工作,我有它显示在产品视图。然而,当我试图将这台台式计算机添加到我的购物车时,我遇到了一个问题。我能够找到一个名为*_prepareProduct*的函数,它位于/app/code/core/Mage/Bundle/Model/Product/Type.php下

下面是我发现问题的代码片段。如您所见,我已转储SelectionID,并返回我从产品视图页面中选择的选项的数组。第二个转储是selections->getItems,我不知道这个函数在哪里,它不允许我聚焦它。但是,当我从仅包含简单产品的捆绑产品(即包含键盘和鼠标的捆绑产品)中查看此转储时,它将输出数据/对象以供选择->getItems。。。。当我从包含捆绑产品的捆绑产品中转储此内容时,例如,具有包含键盘、鼠标和其他内容的捆绑产品的桌面计算机,它不会为选择->getItems…返回任何内容

有谁能帮助我理解GetSelectionsById,以及如何覆盖它,以便在我向购物车添加商品时,它不会返回捆绑产品的空对象,和/或帮助我理解getItems,以及如何覆盖它?我知道如何覆盖getSelectionsById,但我不明白是什么导致函数不返回任何内容

感谢

getSelectionsById正在返回一个Magento集合,该集合是一个用于包含所有相同类的其他模型的模型。将其视为一个增强的阵列。您可以在此处阅读更多关于它们的信息:

由于一些PHP技巧,在许多情况下,可以将Magento集合视为数组。例如,以下代码起作用:

$productCollection = Mage::getModel('catalog/product')->getCollection();
foreach ($productCollection as $product) {
    // do stuff
}
尽管如此,从集合中获取实际的PHP数组有时还是很有用的。为此,使用getItems。这是一种可用于任何Magento集合的方法,特别是从Varien_Data_集合继承的任何对象。你不应该有任何理由推翻它。它只返回集合对象在内部存储和使用的普通ol'PHP数组。没什么特别的,正如你所见:

/**
 * Retrieve collection items
 *
 * @return array
 */
public function getItems()
{
    $this->load();
    return $this->_items;
}
因此,如果getItems为集合返回null或空数组,则表示该集合不包含任何对象。这通常是因为应用于集合的查询返回的结果集为空,尽管我不确定这是否适用于您的情况


很难说清楚为什么代码无法返回包含给定信息的填充集合。如果您能更详细地介绍一下您是如何实现新产品类型的,您创建了哪些类,您是如何扩展核心捆绑包类型的,等等,这将非常有帮助。

谢谢!谢谢你向我解释这件事!
/**
 * Retrieve collection items
 *
 * @return array
 */
public function getItems()
{
    $this->load();
    return $this->_items;
}