diff --git a/packages/commercetools/composables/src/getters/cartGetters.ts b/packages/commercetools/composables/src/getters/cartGetters.ts index e59961c249..e9fd019878 100644 --- a/packages/commercetools/composables/src/getters/cartGetters.ts +++ b/packages/commercetools/composables/src/getters/cartGetters.ts @@ -12,18 +12,18 @@ export const getCartItems = (cart: Cart): LineItem[] => { return cart.lineItems; }; -export const getCartItemName = (product: LineItem): string => product.name; +export const getCartItemName = (product: LineItem): string => product?.name || ''; -export const getCartItemImage = (product: LineItem): string => product.variant.images[0].url; +export const getCartItemImage = (product: LineItem): string => product?.variant?.images[0]?.url || ''; export const getCartItemPrice = (product: LineItem): AgnosticPrice => createPrice(product); -export const getCartItemQty = (product: LineItem): number => product.quantity; +export const getCartItemQty = (product: LineItem): number => product?.quantity || 0; export const getCartItemAttributes = (product: LineItem, filterByAttributeName?: Array) => getProductAttributes(product.variant, filterByAttributeName); -export const getCartItemSku = (product: LineItem): string => product.variant.sku; +export const getCartItemSku = (product: LineItem): string => product?.variant?.sku || ''; const getCartSubtotalPrice = (cart: Cart, selectSpecialPrices = false): number => { return getCartItems(cart).reduce((total, cartItem) => { diff --git a/packages/core/docs/changelog/5699.js b/packages/core/docs/changelog/5699.js new file mode 100644 index 0000000000..4739ae3c67 --- /dev/null +++ b/packages/core/docs/changelog/5699.js @@ -0,0 +1,8 @@ +module.exports = { + description: 'Fix getters in `cartGetters` to now throw errors when some properties don\'t exist', + link: 'https://github.com/vuestorefront/vue-storefront/pull/5699', + isBreaking: false, + breakingChanges: [], + author: 'Filip Sobol', + linkToGitHubAccount: 'https://github.com/filipsobol' +};