2011-08-25 46 views
5

我刚刚将12k个产品导入到我的Magento目录。通过MySQL查询批量更新简单产品“状态”

问题是,产品带有未定义的“状态”字段,如果我想在前端商店中使用它们,我需要手动将其设置为“启用”。手动完成此操作需要数小时。

你知道这个设置在数据库中定义的位置吗?你知道这会自动查询(我想将所有产品设置为“启用”)。为使

UPDATE Catalog SET Status='Enabled' 

如果你想拥有它的默认启用的,你可以修改这个有点

+0

你可以写一个小的脚本。 – Kailas

回答

-7

将设置所有行。

ALTER TABLE `Catalog` CHANGE `Status` `Status` ENUM('','Enabled','Disabled') NOT NULL DEFAULT 'Enabled' 
+0

哪个版本的Magento适用于? – Alex

+4

这似乎并不适用于任何magento版本。 –

16
# First find the ID of the product status attribute in the EAV table: 
SELECT * FROM eav_attribute where entity_type_id = 4 AND attribute_code = 'status' 

# Then use that status attribute ID ($id) while querying the product entity table: 
UPDATE catalog_product_entity_int SET value = 1 WHERE attribute_id = $id 
  • 1 - 启用
  • 2 - 禁用
+0

请记住,不同的值存储在不同的表中。如果您的值是'varchar'类型,则它将位于catalog_product_entity_varchar中 - 您可以在eav_attribute表结构中检查此值。感谢这一点,它帮助我。 – DreamWave