position字段值是针对当前分类有效的,意味着一个分类有多少个产品,在保存的时候就要更新多少个position字段值。之前使用配置产品的时候,往往一个分类会出现几万条产品,这个时候position基本失效,因为无法保存。
经过研究发现,之所以保存的时候一直转圈等待,ajax一直在转的问题,其原因可能如下:
原因就是php.ini的配置中变量 max_input_vars的默认值是1000,当分类中的产品接近1000的时候,会出现变量超出,而造成无法赋值的现象:
执行逻辑:app\code\core\Mage\Adminhtml\controllers\Catalog\CategoryController.php中的save方法:
进而造成看到页面的ajax一直在转,但是页面没有刷新的情况。
把这个max_input_vars改的大点,直接
max_input_vars = 50000
完美解决magento分类后台不能保存的问题。
不同版本的magneto,在保存方法里面的执行逻辑可能略有不同,以上只是解决的一种,需要综合的结合代码进行处理。