diff --git a/packages/theme/modules/catalog/pages/category.vue b/packages/theme/modules/catalog/pages/category.vue index d14d04949..1dc0e8708 100644 --- a/packages/theme/modules/catalog/pages/category.vue +++ b/packages/theme/modules/catalog/pages/category.vue @@ -205,13 +205,13 @@ export default defineComponent({ const { activeCategory, loadCategoryTree } = useTraverseCategory(); const activeCategoryName = computed(() => activeCategory.value?.name ?? ''); + const categoryUid = routeData.uid; + const { fetch } = useFetch(async () => { if (!activeCategory.value) { await loadCategoryTree(); } - const categoryUid = routeData.uid; - const [content, categoryMetaData] = await Promise.all([ getContentData(categoryUid as string), loadCategoryMeta({ category_uid: routeData.value?.uid }), @@ -237,17 +237,27 @@ export default defineComponent({ }); const isPriceLoaded = ref(false); + onMounted(async () => { loadWishlist(); const { getPricesBySku } = usePrice(); if (products.value.length > 0) { const skus = products.value.map((item) => item.sku); const priceData = await getPricesBySku(skus, pagination.value.itemsPerPage); - products.value = products.value.map((product) => ({ - ...product, - price_range: priceData.items.find((item) => item.sku === product.sku)?.price_range, - })); + products.value = products.value.map((product) => { + const priceRange = priceData.items.find((item) => item.sku === product.sku)?.price_range; + + if (priceRange) { + return { + ...product, + price_range: priceRange, + }; + } + + return { ...product }; + }); } + isPriceLoaded.value = true; }); diff --git a/packages/theme/modules/catalog/product/getters/productGetters.ts b/packages/theme/modules/catalog/product/getters/productGetters.ts index 575e03a42..40c1bd176 100644 --- a/packages/theme/modules/catalog/product/getters/productGetters.ts +++ b/packages/theme/modules/catalog/product/getters/productGetters.ts @@ -92,7 +92,7 @@ export const getPrice = (product: ProductInterface): Price => { export const getGallery = (product: Product, maxGallerySize = 4): MediaGalleryItem[] => { const images = []; - if (!product?.media_gallery.length && !product?.configurable_product_options_selection?.media_gallery.length) { + if (!product?.media_gallery?.length && !product?.configurable_product_options_selection?.media_gallery?.length) { return images; }