我需要删除我的 magento 商店中的所有特价商品,当我查看 phpMyAdmin 时,我对 magento 的数据库结构一无所知。
有人可以指导我吗?
谢谢。
有一种简单的方法可以从所有产品中删除所有特价。您实际上不需要运行任何脚本。只需转到administration -> catalog -> manage products
并单击select all
网格视图左上角的 。然后,在actions
右上角的下拉列表中,选择Update Attributes
并按下Submit
。
请看下面的截图:
现在,在更新属性屏幕中,向下滚动到Special Price
字段,然后选中Change
复选框。不要在文本框中放任何东西。点击保存。
请参阅下面的屏幕截图。
如果您有很多产品,这可能需要一段时间,但它会在不干扰数据库的情况下工作。完成后,转到索引管理并重新索引所有内容。
您有两种解决方法:
1) 更多地查看 Magento 数据库,它使用多个表来映射价格等。如果您启用了它,还可以使用单个平面表。要更新所有价格,您需要在 varchar 表中查找特殊价格值,获取该 ID 并更新其父级。
2) 创建一个 PHP 脚本,它将加载所有产品并循环并更新您想要的值。基本代码是:
// inside a loop
$product->setSpecialPrice(0);
$product->save();
调试所需 SQL 的一种简单方法是启用 MySQL 日志记录、保存产品并查看正在写入哪些表。或者甚至在产品目录保存事件中添加一个回显到保存后的实体以打印出生成的 SQL。
直接来自数据库。
在执行以下查询导出并保留备份“catalog_product_entity_decimal”表之前。
执行以下查询。
DELETE from
catalog_product_entity_decimal
where attribute_id in ( select attribute_id from eav_attribute where attribute_code = 'special_price');
如果要删除特价,请创建 csv 文件以进行导入,并使用 SKU 添加空白的 valspecial 价格字段并导入该 csv。它删除所有特价。
您只需选择空白字段并保存更改,然后所有特价将被删除。 附在此处的图片
问题是为什么你需要删除它们?您也可以使用 CSS 隐藏它们,快速简单,但再一次……您应该评估这种需求和解决方案!希望能帮助到你!