When I'm trying to change the quantity of a product in the admin, it will not be stored in the database. This problem only occurs when the EAV cache is enabled.
The quantity input field has the name: "product[quantity_and_stock_status][qty]". If I save the product, javascript will create a new hidden input field with the name "product[stock_data][qty]". After saving the product, there will be a page refresh. After that page refresh, there is a POST request visible in the Network tab from my Chrome Developer Tools.
When I check the Request Payload in the tab Headers, both input field values are visible, I see the quantity_and_stock_status:
Content-Disposition: form-data; name="product[quantity_and_stock_status][qty]"
1700
And I see the stock_data:
Content-Disposition: form-data; name="product[stock_data][qty]"
1500
1700 is the value that I entered in the quantity field, but the value didn't change in the database, so it sets the old value (1500) in the input field:
When I check the page source (after the page was saved), the JSON of the product form data contains quantity_and_stock_status and stock_data. But now the values are both 1500.
"product_form_data_source": {
"type": "dataSource",
"name": "product_form_data_source",
"dataScope": "product_form",
"config": {
"data": {
"product": {
"status": "1",
"name": "Target Power Star Air G3 Black",
"sku": "330800",
"price": "1.07",
"tax_class_id": "4",
"quantity_and_stock_status": {
"is_in_stock": 1,
"qty": 1500
},
"attribute_set_id": "11",
"current_product_id": "1878",
"stock_data": {
"item_id": "1868",
"product_id": "1878",
"stock_id": "1",
"qty": 1500,
"min_qty": 0,
"use_config_min_qty": "1",
"is_qty_decimal": 0,
"backorders": 2,
"use_config_backorders": "1",
"min_sale_qty": 1,
"use_config_min_sale_qty": "1",
"max_sale_qty": 10000,
"use_config_max_sale_qty": "1",
"is_in_stock": 1,
"low_stock_date": null,
"notify_stock_qty": 1,
"use_config_notify_stock_qty": "1",
"manage_stock": 1,
"use_config_manage_stock": "1",
"stock_status_changed_auto": "0",
"use_config_qty_increments": "1",
"qty_increments": 0,
"use_config_enable_qty_inc": "1",
"enable_qty_increments": 0,
"is_decimal_divided": 0,
"website_id": "0",
"type_id": "simple",
"min_qty_allowed_in_shopping_cart": "1"
}
}
}
}
}
(This is only the relevant info of the JSON)
Has anyone encountered this problem or could this be a Magento bug?