手动将自定义选项添加到现有产品

时间:2011-06-14 13:53:50

标签: magento magento-1.4

我正在尝试为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

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

我错过了什么?

更新 在手动浏览保存操作后执行的每个查询后,我发现了我所遗漏的内容。当产品有选项时,它必须在不同的模板(或Magento中调用的任何内容)中显示它们。为此,您必须更改属性options_container的值。

所以,有一个非常简单的解决方案。只需查看表attribute_id中的eav_attribute即可。然后,对每个产品运行以下查询:

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

那就行了! :)

2 个答案:

答案 0 :(得分:0)

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

所以,有一个非常简单的解决方案。只需查看表attribute_id中的eav_attribute即可。然后,对每个产品运行以下查询:

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

那就行了! :)

答案 1 :(得分:0)

您确实不应该出于任何原因直接访问数据库。这破坏了使用EAV系统的力量和足智多谋。

  1. 如果在magento之外扩展Mage.php(如果不是,则忽略)
  2. 制作您想要操作的任何实体的集合
  3. 使用所述集合来写/读数据
  4. 在路上保持头痛!