У меня странная проблема в magento. Все, что я изменяю на вкладке «Инвентаризация» продукта, получает сброс после нажатия кнопки «Сохранить».
У кого-нибудь была подобная проблема в прошлом?
Есть ли способ шаг за шагом смоделировать процесс сохранения, чтобы я мог видеть, где появляется ошибка?
До сих пор я пытался:
Извините за отсутствие информации. Если вам нужна какая-либо информация, пожалуйста, не стесняйтесь спрашивать.
Спасибо за помощь!
Пожалуйста, попробуйте следующее решение может помочь вам
Я отследил это в 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);
Кажется, чтобы исправить проблему & уровни запасов теперь остаются правильными при сохранении товара, одновременно создавая / отменяя заказ на передней панели & бэкэнд сайта.
Я выяснил, где проблема была:
У меня более 4000+ различных атрибутов продукта. Каждый раз, когда я сохраняю продукт, информация обо всех 4000 атрибутах передается пост-методом. Кажется, это слишком много, и URL-адреса обрезаются после фиксированного значения символов. Таким образом, количество информации не передается.
Каждый продукт имеет только 1-30 атрибутов, заполненных информацией, остальное пустое. Но какие атрибуты заполнены, зависит от конкретного продукта. Я выбрал этот метод создания атрибута для каждой информации, потому что я хотел бы установить индивидуальность, если информация доступна для поиска или фильтрации.
Решением было увеличить max_input_vars в php.ini.
Спасибо!