voicecommerce
VoiceCommerce is a library that makes it to connect ecommerce stores with
voice user interfaces, especially Amazon Alexa and Google Assistant.
Currently it works with any Vue Storefront-based
store, allowing developers to quickly build voice integrations that provide
common ecommerce features.
Installing VoiceCommerce
To install the library in your local node environment, run:
npm install --save voicecommerce
Then, in your project code include the following, to easily connect to
VueStorefront store.
const {VueStorefrontApi, Authentication, inMemoryAuthenticationPersistence} = require('voicecommerce') const api = new VueStorefrontApi({ endpoint: 'https://demo.vuestorefront.io' }) const authentication = new Authentication(inMemoryAuthenticationPersistence);
Building your first Alexa Skill for ecommerce
The easiest way to start building voice apps is with Jovo framework.
VoiceCommerce seamlessly connects with it, giving you a chance to quickly
build a working voice app for ecommerce.
Boostraping a project
To bootstrap a project, follow this guide: Bootstraping project with Jovo
Once you get the hello world working, you’re ready to add ecommerce features.
Adding OAuth
First, you’ll need to set up account linking in your Alexa Skill.
For more details, read how to configure account linking
In the index.js file of your jovo project add OAuth handler:
... const oauthConfig = { clients: [ { clientId: 'XXXXXX', clientSecret: 'XXXXXX', redirectUris: ['http://XXXXX'] } ] } Webhook.use('/oauth', authentication.oauthHandler(api, oauthConfig)) // generated by jovo Webhook.post('/webhook', (req, res) => { app.handleWebhook(req, res) }); ...
Reordering action
Then, in the app/app.js file add the following to one of the intents:
const { Reorder } = require('voicecommerce') 'HelloWorldIntent': function() { authentication.getUser(this.getAccessToken()).then((user) => { if (!user) { this.alexaSkill().showAccountLinkingCard() this.tell('Please link your account before making purchases') return; } const reorder = new Reorder(api) reorder.call(user).then(() => { this.tell('Ordering the same products as usual') }) }) },
That’s it!
Configuration
- Implementing persistence
- Custom login screen
Roadmap
The major features that are coming up include:
- Amazon Pay support
- Google Pay support
- More predefined actions (checking order status etc.)
Contributing
We’re always open for contributions. If you’d like to get involved, contact us
at
rafal@upsidelab.io.
If you’ve found any bugs or have ideas for new features you can create an issue
on GitHub.
License
VoiceCommerce is provided under the MIT license.
Please see LICENSE for licensing details.