Wishlist
@storefront-x/wishlist
Module for e-commerce wishlist. Requires corresponding integration module (e.g. @storefront-x/wishlist-magento
).
useWishlist
composable
Returns wishlist.
Example
vue
<!-- templates/Wishlist.vue -->
<template>
<Heading>Wishlist</Heading>
<ProductProvider v-for="item in wishlist.items" :product="item.product">
<ProductTile />
</ProductProvider>
</template>
<script setup lang="ts">
import Heading from '#ioc/atoms/Heading'
import ProductProvider from '#ioc/providers/ProductProvider'
import ProductTile from '#ioc/molecules/ProductTile'
import useWishlist from '#ioc/composables/useWishlist'
const wishlist = useWishlist()
</script>
useAddToWishlist
service
Adds product to wishlist.
Example
vue
<!-- molecules/AddToWishlist.vue -->
<template>
<Button @click="onClick">Add to wishlist</Button>
</template>
<script setup lang="ts">
import Button from '#ioc/atoms/Button'
import injectProduct from '#ioc/composables/injectProduct'
import useAddToWishlist from '#ioc/services/useAddToWishlist'
const product = injectProduct()
const addToWishlist = useAddToWishlist()
const onClick = async () => {
await addToWishlist(product)
}
</script>
useRemoveFromWishlist
service
Removes product from wishlist.
useMergeWishlist
service
Merges local wishlist with wishlist of currently signed in customer. Should be called before call to useGetWishlist
service, so that local wishlist isn't polluted with customer wishlist.
useWishlistStore
store
Stores state of the wishlist. Should be initialized in serverInit
action. Will set local wishlist to state, if there is currently signed customer, it will get his wishlist and merge it with local one.