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

问题描述:

我正在尝试向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的值。

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

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

这样做就可以了! :)

+0

如果您发现并发现任何变通方法(如打开并保存产品的代码/ api),请发布答案。 – 2011-06-14 14:24:19

+1

解决了,用解决方案更新了我的问题。一个非常容易的! – 2011-06-15 08:23:10

+0

非常感谢你,做得好! (保存为最喜欢的问题...) – 2011-06-15 09:01:39

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

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

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

那会做的伎俩! :)

你真的不应该由于任何原因直接访问数据库。这破坏了使用EAV系统的能力和智能。

  1. 扩展Mage.php如果Magento的外(无视如果不)
  2. 让你想操纵
  3. 使用该收集写任何实体的集合/读取数据
  4. 保存自己头疼下来马路!
+0

得说。这是我第一次与Magento合作,仅仅几天。自那以后没有碰过它,一点都不放过它。但谢谢你的补充。 :) – 2012-03-12 20:08:44