1

我已经设置了目录来对这些值进行排序,这是我昨晚通过管理员保存的。一整天的大部分时间里,他们都在那里。现在,他们像幽灵一样消失了。

我怀疑这个问题可能与通过管理员保存的值有关,而不是与导入的值有关。

谁能指出这个问题的根源和代码中的解决方案?

从我上次看到前端的值(几个小时前)到现在,我做了几件事:

1.) 添加了 2 个新属性和一些测试值(与问题属性无关),重新索引。

2.) 尝试为 60,000 个产品导入不相关的值。进口挂了,所以

3.) 一次导入 20,000 个产品的值,没有错误。

4.) 重新索引。

现在手动保存的所有值都消失了。再次,这怎么可能发生?如果它们被保存到数据库中,那么不应该从代码中对数据库进行删除调用来执行此操作吗?当我没有在代码中或通过管理员执行任何此类命令时,如何/为什么会进行这样的调用?我该如何解决这个问题并在将来避免?

致阿克塞尔(澄清):

感谢您的回复,@Axel。

1.) 我创建了一个名为“ sort_order ”的文本属性,并通过admin输入了一些整数值。

2.) 然后我用 mysqldump做了一个完整的数据库备份。

3.) 然后,我创建了两个新属性,“ random_order ”(价格类型)和“ random_order_1 ”(文本类型)。目的是尝试使用两种解决方案来洗牌目录页面中的产品。

4.)通过 phpMyAdmin 我做了一个简单的查询,以随机顺序给我所有产品:

SELECT  `sku` 
FROM  `catalog_product_entity` 
WHERE 1 
ORDER BY RAND( )

并将结果导出到 csv。我只是使用 excel 将项目编号为 1-60,000,创建一个导入 csv 文件,其中包含以下列:skurandom_order(价格类型)、random_order_1(文本类型),两个属性具有相同的整数值。

5.)我在管理员中使用标准导入方法(替换现有的复杂数据),一次 20k 产品。导入后,先前设置且看似完全不相关的“ random_order ”的值已被删除。

在重新索引之前,每个项目的sort_order现在重置为默认值 (=1),但它仍然以正确的顺序出现在前端(因此值仍然存在于产品平面表中),而random_orderrandom_order_1属性具有它们的导入值。

重新索引后, sort_order的所有痕迹都将被清除。如果我实际上是在导入该属性,那将是有道理的,但我不是。似乎没有其他属性受到影响。

我从 mysqldump 恢复了 db,再次尝试了整个过程。结果相同。

4

0 回答 0