diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f18593992..9553eee16e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed error page display with enabled multistore - @gibkigonzo (#3890) - Fixed edit shipping address in my account - @gibkigonzo (#3921) - Fetch cms_block content in serverPrefetch method - @gibkigonzo (#3910) +- Keep category products objects on ssr - @gibkigonzo (#3924) ### Changed / Improved - Changed pre commit hook to use NODE_ENV production to check for debugger statements - @resubaka (#3686) diff --git a/core/modules/catalog-next/store/category/getters.ts b/core/modules/catalog-next/store/category/getters.ts index 9b537f9954..364142bdb4 100644 --- a/core/modules/catalog-next/store/category/getters.ts +++ b/core/modules/catalog-next/store/category/getters.ts @@ -16,10 +16,13 @@ import { _prepareCategoryPathIds, getSearchOptionsFromRouteParams } from '../../ import { removeStoreCodeFromRoute } from '@vue-storefront/core/lib/multistore' import cloneDeep from 'lodash-es/cloneDeep' -function mapCategoryProducts (productsSkus, productsData) { - return productsSkus.map(prodSku => { - const product = productsData.find(prodData => prodData.sku === prodSku) - return cloneDeep(product) +function mapCategoryProducts (productsFromState, productsData) { + return productsFromState.map(prodState => { + if (typeof prodState === 'string') { + const product = productsData.find(prodData => prodData.sku === prodState) + return cloneDeep(product) + } + return prodState }) } diff --git a/core/modules/catalog-next/store/category/mutations.ts b/core/modules/catalog-next/store/category/mutations.ts index c07bd5a9f6..c391af5f46 100644 --- a/core/modules/catalog-next/store/category/mutations.ts +++ b/core/modules/catalog-next/store/category/mutations.ts @@ -1,3 +1,4 @@ +import { isServer } from '@vue-storefront/core/helpers'; import { nonReactiveState } from './index'; import Vue from 'vue' import { MutationTree } from 'vuex' @@ -9,11 +10,11 @@ import cloneDeep from 'lodash-es/cloneDeep' const mutations: MutationTree = { [types.CATEGORY_SET_PRODUCTS] (state, products = []) { nonReactiveState.products = cloneDeep(products) - state.products = products.map(prod => prod.sku) + state.products = isServer ? products : products.map(prod => prod.sku) }, [types.CATEGORY_ADD_PRODUCTS] (state, products = []) { nonReactiveState.products.push(...cloneDeep(products)) - state.products.push(...products.map(prod => prod.sku)) + state.products.push(...(isServer ? products : products.map(prod => prod.sku))) }, [types.CATEGORY_ADD_CATEGORY] (state, category: Category) { if (category) {