findIndex(item => item.id = id)
А-а-а-а-а-а-а-а!!!!!!!
Что стоит доизучить?
Доизучите, чем присваивание отличается от проверки на равенство.
UPD. Почему используется findIndex, не очень понятно - можно через find сразу получить нужный элемент:
addToCart(state, id) {
state.cartItems.push(state.products.find(n => n.id === id));
},
А если там, откуда вы вызываете мутацию, доступен не только id, но и весь объект - можно передавать в мутацию его, и тогда ничего искать будет не надо:
addToCart: (state, product) => state.cartItems.push(product),
Но вообще, было бы неплохо проверять наличие добавляемого товара в корзине, и вместо дубликатов обновлять счётчик экземпляров, т.е., помещать в корзину не оригинал, а копию объекта с дополнительными данными, например:
addToCart({ cartItems, products }, id) {
let product = cartItems.find(n => n.id === id);
if (!product) {
cartItems.push(product = {
...products.find(n => n.id === id),
quantity: 0,
});
}
product.quantity++;
},