现象:旧商品已删除,新商品使用相同序列号时仍提示该值必须唯一。先确认旧商品是彻底删除、被归档,还是仅禁用。

判断:查询EAV值表是否仍有对应实体。若记录存在,检查删除事务与外键;若不存在,检查唯一校验插件是否维护自己的索引或缓存。

SELECT e.entity_id, e.sku, v.store_id, v.value FROM catalog_product_entity_varchar v JOIN catalog_product_entity e ON e.entity_id=v.entity_id WHERE v.attribute_id=:attribute_id AND v.value='SERIAL-001';

复核:不要直接关闭unique标记录入重复值。修复数据和删除流程后,完整验证创建、删除、重新使用同一值。

完成标准

原问题可以稳定消失,相关边界场景仍能正常工作,而且不需要依赖手工清缓存或重复执行命令。