【发布时间】:2025-12-01 08:45:01
【问题描述】:
我在为 Magento 构建的某个自定义扩展方面需要帮助。我做了一个扩展,允许捆绑产品类型与“父”捆绑产品相关联。
因此,可以将其想象为我在销售捆绑产品“键盘和鼠标”,它与台式计算机捆绑在一起。
我让它在管理员上工作,我让它显示在产品视图上。但是,当我尝试将此“台式电脑”添加到我的购物车时遇到问题。我能够将其追溯到 /app/code/core/Mage/Bundle/Model/Product/Type.php 下名为 *_prepareProduct()* 的函数。
下面是我发现问题的代码的 sn-p。如您所见,我已经转储了 selectionIds 并返回了我从产品视图页面中选择的选项的数组。第二个转储是 selections->getItems (我不知道这个函数在哪里,它不会让我关注它)。但是,当我从仅包含简单产品的捆绑产品(即包含键盘和鼠标的捆绑产品)中查看此 DUMP 时,它将为 selections->getItems(...)输出数据/对象>。当我从包含捆绑产品的捆绑产品(即具有包含键盘和鼠标和其他东西的捆绑产品的台式计算机)中转储它时,它不会返回 selections->getItems(...)。
// If product has not been configured yet then $selections array should be empty
if (!empty($selectionIds)) {
$selections = $this->getSelectionsByIds($selectionIds, $product);
var_dump($selectionIds);
var_dump($selections->getItems());
// Check if added selections are still on sale
foreach ($selections->getItems() as $key => $selection) {
谁能帮我理解“getSelectionsByIds”以及如何覆盖它,这样当我将商品添加到购物车和/或帮助我理解 getItems 以及如何覆盖它时,它不会为捆绑产品返回空对象也?我知道如何覆盖 getSelectionsById 但我不明白是什么导致函数什么都不返回。
谢谢
【问题讨论】: