Skip to main content
  1. All Posts/

voicecommerce

eCommerce JavaScript

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.