@nuxtjs/snipcart
If you like using this module please consider sponsoring
If you are looking for nuxt 2 version please use 1.x version
Features
- Full typescript support base on snipcart interface documentation
- Full support of snipcart documentation out of the box
- highly customization with power of nuxt3
Quick Setup
- Add
@nuxtjs/snipcart
dependency to your project
# Using pnpmpnpm add -D @nuxtjs/snipcart# Using yarnyarn add --dev @nuxtjs/snipcart# Using npmnpm install --save-dev @nuxtjs/snipcart
- Add
@nuxtjs/snipcart
to themodules
section ofnuxt.config.ts
export default defineNuxtConfig({ modules: [ '@nuxtjs/snipcart' ], snipcart: { publicApiKey: "youkey" }})
That's it! You can now use Snipcart
in your Nuxt app ✨
At any time please have a look at our beautiful playground example.
useSnipcart
We tried to not create too much wrapper around the Snipcart api so we don't have to maintain so much if Snipcart change. But you may found some of them useful as:
- exposing snipcart instance
- use of isReady boolean to watch and make sure you can use snipcart instance safely
- realtime store subscription (working but performance hit)
- some function in case you are not using the JS SDK form
window.Snipcart
that will help you add html attributes that Snipcart will read on load. As bindProductItem or bindProductItemCustom - ability to change language or currency using respectively
setLanguage
orsetCurrency
As we have a full typescript support play with it and read the description of what is exposed.
Loading
We are following Snipcart different loadings. You can control the load of the js using loadStrategy
configuration property. You can tell snipcart to not load css using loadCSS
config property.
If you load async take in consideration on server or client you will not have access to window.Snipcart
or snipcart
exposed by useSnipcart
until its loaded. So adapt your logic
Customization
With nuxt it is super easy to customize snipart components. Use your own class css in addition of custom html to override snipcart component.
To do that create for example public/snipcart-custom.html
as inside the playground. And make sure you add the path in the nuxt config using templatesUrl
property
Snipcart SDK
As we told before we expose the snipcart SDK as by default with window.Snipcart or form the composable useSnipcart
. So you will have the exact same full access to snipcart SDK
Development
# Install dependenciesnpm install# Generate type stubsnpm run dev:prepare# Develop with the playgroundnpm run dev# Build the playgroundnpm run dev:build# Run ESLintnpm run lint# Run Vitestnpm run testnpm run test:watch# Release new versionnpm run release