const state = { cart: [], total: 0 } const getters = { getCartItems(state) { return state.cart }, isEmpty(state) { return state.cart.length !== 0 } } const mutations = { addToCart(state, payload) { let finded = state.cart.find(item => item.id == payload.data.id) if (finded) { payload.data.qty = payload.data.qty + 1 } else { state.cart = [payload.data, ...state.cart] } }, calculateTotal(state) { let sum = 0 state.cart.forEach(item => { sum = sum + (item.list_price * item.qty) }) state.total = sum } } const actions = { addToCart({ commit }, payload) { commit('addToCart', payload) commit('calculateTotal') } } export default { state, getters, mutations, actions }