我试图用 mySQL 一个 php 脚本批量更新“Special_price”和“price”,我知道包含“price”的表和行,但不知道包含“special_price”的表和行。
我已经查看了数据库本身,但仍然没有运气。有任何想法吗?我需要表名和字段名。
我在 Magento Question Answers Guild 的会员资格要求我建议您修复 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
在不同的范围级别上有一个集合,那么可能有不止一行。
特价是十进制类型的属性。首先,您需要通过应用以下 sql 查询来获取属性 id:
SELECT attribute_id FROM eav_attribute WHERE attribute_code='special_price';
catalog_product_entity_decimal
然后,您可以通过在表中插入记录来为任何产品添加特价。
以下是如何从通过 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