I created a new attribute (multiple select) with some values, everything works fine but when I want to delete all the selected values for a product, I get the message “The product attribute has been saved.” but the values are still selected.
Notes:
- I press
Ctrl + Clickto unselect the last value before I save. - I set the parameter Value Required of my attribute to No
- If I save a product without any value selected yet, then no values get selected
- My Indexes are properly refreshed
- See below two screens, on the left the parameters of my attribute and on the right my multiple select.

I’m running out of ideas so thanks for your help.
This is a known (annoying) behaviour of the Magento Adminhtml forms.
The problem is that if no value is selected for the multiselect, no value for that attribute is posted when the form is submitted.
On the server side Magento then loads the model, sets all the posted attribute values on the model and saves it.
Because no value was posted the original value that was loaded on the model wasn’t updated.
As a solution for attributes with a custom source model I tend to provide an empty option with a special option value (e.g.
-1). That value must not be0or an empty string.Then I specify a backend model for that attribute that checks for that special value in the
_beforeSave()method. If it is found the backend model unsets the attribute on the model instance.Here is an example:
Source Model:
Backend Model:
If you find a better workaround please let me know.