【问题标题】:Manually adding custom options to existing products手动向现有产品添加自定义选项
【发布时间】:2011-06-14 13:53:50
【问题描述】:

我正在尝试向 Magento 中现有的产品添加一些自定义选项。似乎工作正常,我在下表中添加了所需的行:

catalog_product_option
catalog_product_option_title
catalog_product_option_type_value
catalog_product_option_type_price
catalog_product_option_type_title

我还在下表中更新了 has_optionsrequired_options 以获取正确的产品:

catalog_product_entity
catalog_product_flat_1
catalog_product_flat_2
catalog_product_flat_3

当我打开产品时,选项不显示,实际上显示的更少。订购它的按钮消失了。当我打开 edit 页面时,它确实显示了选项。保存后也出现在前端。

我错过了什么?

更新: 在手动完成保存操作后执行的每个查询之后,我发现了我缺少的东西。当一个产品有选项时,它必须在不同的 template 中显示它们(或 Magento 中的任何名称)。为此,您必须更改属性 options_container 的值。

所以,有一个非常简单的解决方法。只需在表eav_attribute 中查找attribute_id。然后为每个产品运行以下查询:

UPDATE `catalog_product_entity_varchar` SET `value` = 'container1' WHERE `attribute_id` = 836 AND `entity_id` = $productId;

这样就可以了! :)

【问题讨论】:

  • 如果你发现了这个问题的答案,如果你发现任何变通方法,例如在代码/api中打开和保存产品。
  • 已解决,用解决方案更新了我的问题。一个很简单的!
  • 非常感谢,做得很好! (保存为最喜欢的问题...)
  • GuidoH,如果您解决了问题,请为包含解决方案的问题创建一个答案,然后单击旁边的复选标记将其作为正确答案。这将意味着该问题已正确回答给未来的搜索者。

标签: magento magento-1.4


【解决方案1】:

在手动完成保存操作后执行的每个查询之后,我发现了我遗漏的内容。当一个产品有选项时,它必须在不同的 template 中显示它们(或 Magento 中的任何名称)。为此,您必须更改属性 options_container 的值。

所以,有一个非常简单的解决方法。只需在表eav_attribute 中查找attribute_id。然后为每个产品运行以下查询:

UPDATE `catalog_product_entity_varchar` SET `value` = 'container1' WHERE `attribute_id` = 836 AND `entity_id` = $productId;

这样就行了! :)

【讨论】:

    【解决方案2】:

    您真的不应该出于任何原因直接访问数据库。这削弱了使用 EAV 系统的能力和机智。

    1. 如果在 magento 之外扩展 Mage.php(如果不是则忽略)
    2. 收集您想要操作的任何实体
    3. 使用所述集合写入/读取数据
    4. 以后不用再头疼了!

    【讨论】:

    • 得说.. 这是我第一次与 Magento 合作,仅仅几天。从那以后就再也没有碰过它,完全没有错过它。但感谢您的补充。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多