Magento 无法在后端更改产品数量
Magento cant change product quantity in backend
我在 magento 中遇到了一个奇怪的问题。我在产品的 "Inventory" 选项卡中所做的所有更改,都会在我单击 "save" 后重新设置。
过去有人遇到过类似的问题吗?
有没有办法一步步模拟保存进度,看看哪里出错了?
到目前为止,我已经尝试过:
- 禁用所有插件
- 重新索引所有新内容
- 删除backend/via SQL/via ssh中的完整缓存
- 删除所有产品和类别
抱歉缺少信息。如果您需要任何信息,请随时询问。
感谢您的帮助!
请尝试以下解决方案可能对您有所帮助
我追踪到 app/code/core/Mage/CatalogInventory/Model/Observer.php.
事件 catalog_product_save_after 调用 saveInventoryData 方法,该方法又调用 _prepareItemForSave 方法。
225行附近:
$originalQty = $product->getData('stock_data/original_inventory_qty');
if (strlen($originalQty)>0) {
$item->setQtyCorrection($item->getQty()-$originalQty);
}
如果你注释掉这一行:
$item->setQtyCorrection($item->getQty()-$originalQty);
问题似乎得到了纠正,现在保存产品时库存水平保持正确,同时在网站正面和 back-end 上创建/取消订单。
我想通了,问题出在哪里:
我有 4000 多种不同的产品属性。每次我保存一个产品时,所有 4000 个属性的信息都通过 post-method 传输。这似乎太多了,并且 URL 在固定的字符值之后被截断了。所以数量信息没有传输。
每个产品只有1-30个属性填写信息,其余为空白。但是填充哪些属性要看具体的产品。我选择这种为每个信息创建属性的方法,因为如果信息是可搜索或可过滤的,我想设置个性。
解决方案是在 php.ini 中增加 max_input_vars。
谢谢!
我在 magento 中遇到了一个奇怪的问题。我在产品的 "Inventory" 选项卡中所做的所有更改,都会在我单击 "save" 后重新设置。
过去有人遇到过类似的问题吗?
有没有办法一步步模拟保存进度,看看哪里出错了?
到目前为止,我已经尝试过:
- 禁用所有插件
- 重新索引所有新内容
- 删除backend/via SQL/via ssh中的完整缓存
- 删除所有产品和类别
抱歉缺少信息。如果您需要任何信息,请随时询问。
感谢您的帮助!
请尝试以下解决方案可能对您有所帮助
我追踪到 app/code/core/Mage/CatalogInventory/Model/Observer.php.
事件 catalog_product_save_after 调用 saveInventoryData 方法,该方法又调用 _prepareItemForSave 方法。
225行附近:
$originalQty = $product->getData('stock_data/original_inventory_qty');
if (strlen($originalQty)>0) {
$item->setQtyCorrection($item->getQty()-$originalQty);
}
如果你注释掉这一行:
$item->setQtyCorrection($item->getQty()-$originalQty);
问题似乎得到了纠正,现在保存产品时库存水平保持正确,同时在网站正面和 back-end 上创建/取消订单。
我想通了,问题出在哪里: 我有 4000 多种不同的产品属性。每次我保存一个产品时,所有 4000 个属性的信息都通过 post-method 传输。这似乎太多了,并且 URL 在固定的字符值之后被截断了。所以数量信息没有传输。
每个产品只有1-30个属性填写信息,其余为空白。但是填充哪些属性要看具体的产品。我选择这种为每个信息创建属性的方法,因为如果信息是可搜索或可过滤的,我想设置个性。
解决方案是在 php.ini 中增加 max_input_vars。
谢谢!