我试图用mySQL和PHP脚本批量更新“Special_price”和“price”,我知道包含“价格”但不包含“special_price”的表格和行。
我看起来虽然数据库本身仍然没有运气。有任何想法吗?我需要表名和字段名。
答案 0 :(得分:16)
我在Magento问题解答公会中的成员资格要求我建议您修复API错误,而不是使用普通的旧SQL来更新数据库。如其他地方所述,直接更新数据库可能会使Magento进入系统无法识别的状态,这可能导致奇怪的,令人愤怒的错误。
也就是说,特殊价格值将与
中的其他产品属性值一起存储catalog_product_entity_decimal
表。此表具有attribute_id
列,该列与eav_attribute
表具有外键关系。在eav_attribute
表中查找代码为special_price
的属性。 attribute_id
和产品的entity_id
应足以在catalog_product_entity_decimal
中找到正确的行。
请注意,如果产品没有设置special_price
,则不会存在任何行。另请注意,如果产品的special_price
设置在不同的范围级别,那么可能会有多行。
答案 1 :(得分:1)
特价是十进制类型的属性。
首先,您需要通过应用此sql查询来获取属性id:
SELECT attribute_id FROM eav_attribute WHERE attribute_code='special_price';
然后,您可以通过在catalog_product_entity_decimal
表中插入记录为任何产品添加特价。
答案 2 :(得分:-1)
以下是如何从通过csv文件导入的SKU列表中删除特殊价格到temp_import_sp_price_delete
。
delete deci from catalog_product_entity_decimal deci,
`catalog_product_entity` pr,
temp_import_sp_price_delete temp
where temp.SKU= pr.SKU and pr.entity_id=deci.entity_id and deci.attribute_id=76