С сервера приходят категории вида 
{
    id: 1,
    title: "category",
    products: [
        id: 1,
        title: "product",
        subproducts: [
            id: 1,
            title: "subproduct",    
        ]           
    ]       
}
В категории может быть продукты, в продукте - субпродукты.
Как управлять этим через Vuex? Например, локальное добавление продукта будет выглядеть так: 
ADD_PRODUCT(state, { categoryName, price, title, subproducts = [] }) {
            let categories = state.categories
            if (!categories) return
            let category = _.find(categories, { title: categoryName })
            if (!category) return
            category.products.push({ price, title, subproducts })
        },
Удаление субпродукта так:
REMOVE_SUBPRODUCT(state, { categoryId, productId, id }) {
            let categories = [...state.categories]
            let category = _.find(categories, { id: categoryId })
            if (!category) return
            let product = _.find(category.products, { id: productId })
            if (!product) return
            _.remove(product.subproducts, { id })
            state.categories = categories
        },
Как можно это сократить и упростить?