Magento - 查询产品选项

2023-12-11

我想编写一个控制器来查找给定产品的不同选项(例如大、中、小、红色、蓝色等...)。

谁能告诉我我要写入控制器的代码?

额外细节

我越来越接近了,但我仍然无法弄清楚。这是我在控制器中编写的代码

$db = Mage::getModel('catalog/product')->load($productId);
print_r($db->getOptions());  // returns an empty array
echo $db->getHasOptions();  // echos 1

但是当我在第二行执行 print_r() 时, getOptions 返回一个空数组。第三行 echo 的值为 1,这意味着应该有选项。

额外细节我尝试了clockworkgeek的解决方案$db->getProductOptions(),什么也没返回。我试过$db->getProductOptionsCollection(),并得到这个输出

Array
(
    [totalRecords] => 0
    [items] => Array
        (
        )

)

我的代码有什么问题以至于它没有返回允许的产品选项?


代替getOptions()请尝试getCustomOptions() or getProductOptionsCollection() or getProductOptionsCollection()->load().

Edit
我在一个我知道有选项的产品上尝试过这个。

<?php
require 'app/Mage.php';
Mage::app();

$product = Mage::getModel('catalog/product')->load($productId);
foreach ($product->getProductOptions() as $option) {
    print_r($option->debug());
}

并得到这样的东西:

Array
(
    [option_id] => 37
    [product_id] => 8
    [type] => multidate
    [is_require] => 1
    [sku] => 
    [image_size_x] => 0
    [image_size_y] => 0
    [sort_order] => 1
    [default_title] => Dates
    [title] => Dates
)

然而,getOptions()也为我工作,所以我不知道发生了什么事。

后期编辑
混乱是语义之一。一个简单的产品可以有“自定义选项”,它们允许创建一些表单字段,这些字段记录为订单的一部分。可配置产品使用“关联产品”来创建带有条件字段的表单。

例如,您可能销售大号绿色、小号绿色或大号蓝色的袜子,但不销售小号蓝色的袜子。对于一个简单的产品,您将有一个大/小字段和一个蓝色/绿色字段 - 这允许客户选择小蓝色,这是错误的。

因此,要查找可配置的组成部分,您可以执行以下操作:

if ($product->isConfigurable()) {
    $configurable = $product->getTypeInstance();
    $childProducts = $product->getUsedProducts($product);
    foreach ($childProducts as $child) {
        // You have a $child now
    }
}

找到等价于getOptions()你需要这个:

if ($product->isConfigurable()) {
    $configurable = $product->getTypeInstance();
    $attributes = $configurable->getConfigurableAttributes($product);
    // $attributes is a Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable_Attribute_Collection
    foreach ($attributes as $attribute) {
        // $attribute is a Mage_Catalog_Model_Product_Type_Configurable_Attribute
        print $attribute->getLabel();
    }
}

Mage_Catalog_Model_Product_Type_Configurable_Attribute本身没有太多可透露的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Magento - 查询产品选项 的相关文章

  • @RestController 没有 @ResponseBody 方法工作不正确

    我有以下控制器 RestController RequestMapping value base url public class MyController RequestMapping value child url method Req
  • Paypal Express Checkout 坚持使用电话号码,即使选项已关闭(从 Magento 拨打)

    我在 Magento 中使用 Paypal 快速结帐 选项 我没有使用任何快速结帐按钮 这只是因为我在从网站付款标准返回时遇到问题 在 Paypal 的网站付款首选项中 我已将 联系电话号码 字段设置为关闭 我还在 Magento 方面进行
  • Magento - 无法重新索引产品价格 - 外键约束失败

    我最近刚刚将我的 magento 商店从 1 4 2 升级到 1 7 0 2 升级进行得很顺利 但是当我尝试在升级后重新索引数据时 产品价格失败了 我尝试过使用php shell indexer php reindexall来自 SSH 它
  • 使用按钮添加自定义折扣订单总计

    我的模块带有自定义折扣 没问题 配置 xml
  • 在产品页面上显示最近浏览过的产品

    magento 当前的默认功能是在类别页面的右侧显示最近查看的产品 现在我想在产品页面底部显示相同的内容 使用的 phtml 文件在位置命名为 frontend base default template reports product v
  • 不使用 Magento Connect 安装 magento 插件

    我有一个我的客户购买的插件 它是一个 zip 文件 如何在不使用 Magento 连接的情况下安装插件 通常你可以直接解压 但你应该检查目录结构是Magento风格 它至少应该有app code app etc modules目录
  • Laravel 将变量发送到视图

    路线 php Route post user char name array as gt char profile post uses gt ProfileController postDropDownList Route get user
  • Rails:将参数从视图传递到控制器

    我在 Rails 中有以下模型 class Task lt ActiveRecord Base attr accessible description name project belongs to project validates na
  • 从轨道控制器返回

    这是一个初学者 Rails 问题 我这样做之后 format xml head ok 如何从控制器端点返回而不显示视图 如果我此时放弃函数的末尾 我会得到我所期望的结果 但如果我调用 返回 我最终会进入视图 或者在我的情况下会出现缺少的视图
  • Rspec 控制器测试,传递 JSON 参数

    我试图实现以下目标 在 RSpec 控制器测试中创建 POST json 请求 并向其传递参数 这是我的代码 it returns access token do post login email bla password bla1 for
  • 推送/呈现模态视图控制器

    我的视图控制器中有一个表 我们称之为 TVC1 我使用了 TVC1 中的行 以便用户除了 TVC1 上的数据之外还可以输入更多数据 因此 当有人点击 TVC1 中的特定行时 它将显示另一个视图控制器 我们称之为 TVC2 然而 当显示TVC
  • 在 Magento 中使用缩略图切换基本图像

    在定制的产品视图页面上 我正在处理基本图像 大图像 和缩略图列表 这些缩略图是与媒体库中的产品相关的其他图像 它们只是普通图像 而不是定义的图像 缩略图 我的任务是获取它 以便当您单击缩略图时它会更改上面的基本图像 我已经可以工作了 但是我
  • 使用magento中SOAP API的salesOrderInfo获取简单的产品sku和数量

    我在以下代码中添加了 app code core Mage Sales Model Order Api php File public function info orderIncrementId order Mage getModel s
  • 如何设置每个产品的运费[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在magento配置中我将运费设置为5英镑 有没有办法在产品级别设置运费 显然有 我只是找不到在哪里 如果您始终对给定产品使用相同的运
  • 以编程方式将礼品消息设置为现有订单[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在寻找一些代码 以便在 Mage
  • 控制器名称是从类名称派生的吗?

    这是一个新手问题 我正在查看默认的 asp net mvc3 项目 注意到有一个名为 public class AccountController Controller 我查看了整个代码 找不到指定 AccountController 映射
  • Magento SOAP V2 API - 附加属性设置为空

    几个小时以来 我一直在尝试通过 SOAP V2 API 创建具有附加属性的产品 每当我打电话时就会添加该产品目录产品创建但我随请求发送的附加属性被设置为空 每当我不添加附加属性时 这两个属性都会设置为其默认值 因此我认为这些属性正在发送和接
  • Laravel 4 路由 404 错误

    当我路由到某个页面时 我无法让 Laravel 找到该页面 我的路线已设置并被识别 当我使用 URL route account create 创建链接时 laravel 会成功地将其解析为 account create 以了解我希望链接转
  • 如何使用模块在magento admin中创建子菜单

    我正在开发 magento 模块 我想在管理部分添加菜单 like 管理 gt 目录 gt 属性 gt 管理属性 gt 这里是我的菜单 Magento 版本 1 5 1 0 我怎样才能做到这一点 在你的模块中adminhtml xml输入以
  • PayPal 网关已拒绝请求。安全标头无效(#10002:安全错误 Magento

    在 magento 中增加 PayPal 预付款 我已填写 magento admin 中的所有凭据 但是当我进入前端并单击 pay pal 按钮时 它给出了 PayPal 网关已拒绝请求 安全标头无效 10002 安全错误 我用谷歌搜索了

随机推荐

  • 使用 GhostScript 将 PDF 转换为服务器上的图像集合

    这些是我试图实现的步骤 在服务器上上传 PDF 文档 使用 GhostScript 将 PDF 文档转换为一组图像 每个页面都转换为图像 将图像集合发送回客户端 到目前为止 我感兴趣的是 2 首先 我下载了两个gswin32c exe an
  • Mahout row相似度

    我正在尝试计算维基百科文档之间的行相似度 我有 tf idf 向量的格式Key class class org apache hadoop io Text Value Class class org apache mahout math V
  • 如何读取Oracle集合类型的元素类型?

    我将 Oracle 集合类型定义为 type tab foo as table of obj foo Where obj foo定义为 type obj foo as object 通过致电 select from sys all type
  • ModuleNotFoundError:没有名为“pandas._libs.tslibs.timedeltas”的模块

    我是Python的学习者 执行我的脚本时出现问题 表明failed to execute script在通过 Pyinstaller 打包时 由于 ModuleNotFoundError 没有名为 pandas libs tslibs ti
  • 如何中止映射器(或减速器)内的 MR 作业

    我尝试在map方法中抛出IOExceptions 但MR作业没有停止 抛出大量 IOException 后作业将停止 有没有什么方法可以通过抛出异常或一些简单的调用来停止整个工作 谢谢 这不是 Hadoop 的理想用例 也不是一个好的实践
  • libusb-win32:自动安装驱动程序过滤器

    我在使用基于 libusb w32 的程序来检测设备时遇到了问题 该程序必须检测数码相机 我需要自动安装驱动程序过滤器 以便检测到任何新相机 而无需任何手动操作 我使用过 install filter i class 6BDD1FC6 81
  • 使用十进制数字生成可变颜色

    我创建了一个文件 其中第一列是十进制颜色线 第二列是 y 轴 x 轴是行号 0 0 1 1 2 2 然后我运行这个命令 plot test dat u 0 2 1 pt 7 ps 1 lc rgb variable 正如您在图片中看到的 输
  • 一个java文件如何调用另一个java文件的方法? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 如何在java中调用不同类 文件 的方法 是否需要对象 或者有第三种方法来合并java文档吗 我们可以使用简单的方法调用吗 有没有正确的方法来调用新方法 我不清楚你的问题 据我了解你想
  • 将 Vue 3 组件渲染为 HTML 字符串

    我正在开发一个 vue js 项目 版本 3 我遇到了一种情况 我想将组件的渲染 HTML 视图用于当前组件的方法 我在 Vue 项目中创建了以下 SVG 组件 CircleWithTextSvg vue
  • 在 Haskell 中使用“foldr”实现“member”函数

    我这样尝试过 member e False member e xs foldr e xs 进而 member 3 1 2 3 4 5 我收到此错误消息 No instance for Num Bool arising from the li
  • 在 Windows 窗体应用程序中永远循环

    我正在使用 Visual C 并且我正在使用 Windows 窗体而不是控制台应用程序 因此我不是在 Main 中工作 而是在表单文件中工作 我对 C 也很陌生 如果我的一些问题很愚蠢 我很抱歉 我基本上需要做的是 当我的程序启动时 我需要
  • 当使用子目录为每个目标构建依赖项时,CMake 无法找到外部库

    我有一组库及其各自的测试 它们按以下方式组织 Lib1 Lib1 Test Lib2 Lib2 Test Lib3 Lib3 Test 等等 其中一些库依赖于其他库 例如Lib1依赖于取决于Lib2 而 Lib3 依赖于 Lib1 我可以轻
  • SQLite3 查询 ORDER BY 参数带有 ?符号

    我正在尝试在 python 中使用 sqlite3 进行查询 通过参数列 overall risk 或 latest risk 这是双数 进行排序 param overall risk cur db execute SELECT FROM
  • 在 Python Tkinter 中绑定 Ctrl (-)

    我有一个带有文本小部件的应用程序 我希望当用户按下 Control 键和减号键 时我的字体变小 the code self bind all
  • Cloudfoundry 上的非 http TCP 连接

    我是一名菜鸟移动开发人员 试图利用 cloudfoundry 的服务来运行我的服务器来处理一些聊天和角色移动 我正在使用 Noobhub 来实现此目的 使用 Node js 和 Corona SDK 的 TCP 连接 API 在服务器和客户
  • 仅返回对象中包含特定值的数组元素

    我在弹性搜索索引中有以下文档 type foo components id 1234123 data collections date time 2020 03 02T08 14 48 00 00 group 1 group descrip
  • 如何动态加载 strings.xml?我可以将文件放在服务器上吗?

    我为什么问这个是因为我的 APK 很大 我想让它变小 strings xml 中有很多字符串 我们的产品经理迫使我们支持地球上的所有语言 我想知道 我是否可以将 strings xml 的一些语言放在本地 将其他语言放在服务器中 然后当用户
  • 自动启动 Metro 应用程序

    我想编写一个 Windows 8 Metro 应用程序 该应用程序在用户登录后自动启动 对于桌面应用程序 我知道如何做到这一点 使用注册表项或将链接复制到启动文件夹 在这种情况下 我正在寻找与最后一种方法等效的 Metro 因为我希望用户可
  • 流星失败,无法从 npm-shrinkwrap 安装 npm-packages

    我已经诊断这个问题几天了 并测试了与此类似的 meteor 和 npm 依赖项出现的首要问题解决方案 我和我的后端工程师都被难住了 我使用的是 OSX 10 10 3 ruby 1 9 3 node v0 10 36 npm 1 4 28
  • Magento - 查询产品选项

    我想编写一个控制器来查找给定产品的不同选项 例如大 中 小 红色 蓝色等 谁能告诉我我要写入控制器的代码 额外细节 我越来越接近了 但我仍然无法弄清楚 这是我在控制器中编写的代码 db Mage getModel catalog produ