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 - 查询产品选项 的相关文章

  • ASP.NET MVC 2 - POST 后 ViewData 为空

    我真的不知道在哪里寻找错误 情况 我有一个 ASPX 视图 其中包含一个表单和一些输入 当我单击 提交 按钮时 所有内容都会 POST 到我的一个 ASP NET MVC 操作 当我在那里设置断点时 它被正确命中 当我使用 FireBug
  • 在 Magento 中显示产品所属的所有类别

    我正在构思一个新的 Magento 网站 该网站将包含多个类别的产品 我想知道是否可以在产品详细信息页面上显示产品所属的所有类别 我知道有可能得到the类别 但是否可以显示列表all产品属于哪些类别 例如 衬衫可以包含在Shirts类别 以
  • Magento CSRF 保护

    我正在 Magento 中查看自定义表单 我看到了这些教程 http fastdivision com 2012 03 29 diy magento create ajax login registration forms for your
  • 在 Magento 中获取过去 24 小时内的订单商品

    我正在尝试获取过去 24 小时内的所有订单商品 我已锁定查询 因此它返回了我需要的内容 order id 和created on 值 order items Mage getResourceModel sales order item co
  • Magento Rest API - oAuth 错误

    我是第一次使用 Magento Rest API 我浏览了 Rest API 的教程http www magentocommerce com api rest并尝试了一个通过 API 获取产品的示例 callbackUrl http loc
  • 调用控制器 Post 方法时遇到问题

    这是我的方法 AcceptVerbs HttpVerbs Post public void SaveImage FormCollection formValues byte contents Convert FromBase64String
  • ControllerBase(asp.net mvc) 中的 HttpContext.Current.User 为 null

    我有一个ControllerBaseASP NET MVC 应用程序中的类 其他控制器继承自ControllerBase 我想访问HttpContext User Identity Name but HttpContext is null
  • Magento:每个订单限制类别中的 3 个产品

    我正在尝试在 Magento 中设置一个示例产品类别 允许人们每次购买时最多选择 3 个免费样品 但如何限制每个订单仅从该类别中选择 3 个样品 EDIT 这是 app code local MagePal LimitCartProduct
  • Magento 1.8 - 高级搜索不起作用

    我在最新版本的 magento 中发现了一个奇怪的错误 高级搜索工具无法正常工作 我做了什么 安装 magento 的新副本 在管理页面添加了一个名为 测试 1 的产品 重新索引全部 清除所有缓存 At the frontend page
  • 在 Magento 控制器中使用 move_uploaded_file

    我是 magento 的新手 我正在 magento 管理中创建用于文件上传的自定义模块 现在我已将上传文件发布到我的模块控制器中 这里我用过move uploaded file将文件上传到与控制器文件夹相同的目录中 下面的代码我用于控制器
  • 通过列计数拆分时重复表头

    我正在 Magento 中输出产品列表 作为包装在表格中的简单列表 由于此列表可能会很长 100 个以上产品 因此我使用了来自这里的想法 https stackoverflow com questions 21001803 how to h
  • 访问 Magento 购物车和/或结帐中的运费

    请注意 这个问题是关于运费 而不是价格 有一个重要的区别 即运输方式为店主支付的费用是多少 而不是客户支付的费用 The shipping tablerate数据库表包括一个cost字段 该字段填充在Mage Shipping Model
  • Magento 设置脚本中的 ALTER TABLE 不使用 SQL

    乔纳森 戴 https stackoverflow com users 336905 jonathan day says 更新不应采用以下形式 SQL命令 我没遇到过 任何 DDL 或 DML 语句不能 通过 Magento 的配置执行 结
  • 来自控制器的 Rails 验证

    有一个联系页面 可以输入姓名 电话 电子邮件和消息 然后发送到管理员的电子邮件 没有理由将消息存储在数据库中 问题 如何 在控制器中使用 Rails 验证 根本不使用模型 或者 在模型中使用验证 但没有任何数据库关系 UPD Model c
  • 如何从 Magento One Page Checkout 获取发布数据?

    为了在 Magento Checkout 中添加客户评论字段 我在相应的模板文件中添加了一个文本字段 并使用如下观察器将评论添加到订单中 comment strip tags Mage app gt getRequest gt getPar
  • Paypal Express Checkout 坚持使用电话号码,即使选项已关闭(从 Magento 拨打)

    我在 Magento 中使用 Paypal 快速结帐 选项 我没有使用任何快速结帐按钮 这只是因为我在从网站付款标准返回时遇到问题 在 Paypal 的网站付款首选项中 我已将 联系电话号码 字段设置为关闭 我还在 Magento 方面进行
  • PHP Web 应用程序 (Magento) 遭到黑客攻击;这段黑客代码有什么作用?

    我刚刚安装的 Magento 1 3 2 4 被黑了 你能告诉我这段代码的目的是什么吗 另外 如何阻止这种情况以及如何发现漏洞 谢谢 function net match network ip ip arr explode network
  • 在产品页面上显示最近浏览过的产品

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

    这是 v 1 4 1 1 Magento 从 v 1 3 2 4 升级当我尝试编辑产品时 出现错误消息 exception Zend Db Statement Exception with message SQLSTATE 23000 In
  • Magento 路由器 URL - 需要连字符的路径名称

    假设我使用自定义控制器 其 url 路径 前端名称为 customcategory 好吧 显然如果我有一个名为 TestController php 和indexAction的控制器文件 url 路径将是 customcategory te

随机推荐

  • 使用 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