npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@geins/ralph-module-voyado-elevate

v5.5.2-dev.3

Published

Component library for Voyado Elevate integrations with Ralph Storefront

Downloads

13

Readme

NPM Package NPM Downloads Geins

Start Geins Free Trial Geins Docs

geins

Voyado Elevate Module for module for Geins PWA Storefront

Module adding Voyado Elevate features in Geins PWA Storefront Ralph in seconds.

Pre-requisites

Installation

1. Install the module

To use the Ralph Module for Voyado Elevate in your Nuxt2 app, you can install it from npm using the following command:

# Install the package using npm:
npm install @geins/ralph-module-voyado-elevate

2. Add the module to your Geins PWA Storefront Ralph

Add the module to your nuxt.config.js file. Configure the module by adding options to the @geins/ralph-module-voyado-elevate object:

// nuxt.config.js

module.exports = {
  modules: [
    [
      '@geins/ralph-module-voyado-elevate',
      // Configuration defaults for the module
      {
        // Set to true to enable debug mode
        debug: false,
        // Set to false to disable the module
        enabled: true,
        // Your Voyado Elevate cluster ID, this is required
        clusterId: '',
        // Limit of products to fetch for the product page recommendations
        pdpRecommendationLimit: 8
      }
    ]
  ]
};

3. Transpile the module dependencies

Add the @apptus/esales-api package to the transpile array so that it can be transpiled correctly. And add the configuration to support CommonJS files for @apptus/esales-api by pushing a new rule to the config.module.rules array in the build.extend method. Here's an example configuration:

// nuxt.config.js

export default {
  // ...

  transpile: ['@apptus/esales-api'],

  build: {
    // You can extend webpack config here
    extend(config, { isDev }) {
      // Support CommonJS files for @apptus/esales-api
      config.module.rules.push({
        test: /\.mjs$/,
        include: /node_modules/,
        type: 'javascript/auto'
      });
    }
  }
};

Components

After installing the module, you can use all its components in your Nuxt2 app straight away.

VoyadoSearch

<template>
  <div>
    <VoyadoSearch
      :is-visible="isVisible"
      @voyadoSearchOnClose="onSearchClose"
      @voyadoSearchOnRouteChange="onSearchRouteChange"
    />
  </div>
</template>

<script>
export default {
  data: () => ({
    isVisible: true
  }),
  methods: {
    onSearchClose() {
      console.log('Search closed');
    },
    onSearchRouteChange() {
      console.log('Search route changed');
    }
  }
};
</script>

Props

| Name | Type | Default | Description | | --------- | ------- | ------- | -------------------------------------------------------------------------------- | | isVisible | Boolean | false | Sets the voyado-search--visible class. Can be used to toggle search from outside |

VoyadoRecommendations

// pages/product/_alias.vue
<template>
  <div>
    <VoyadoRecommendations
      :product-key="product.articleNumber"
      :random-titles="3"
      @voyadoProductData="setVoyadoData"
    />
  </div>
</template>

<script>
import { VoyadoProductPage } from '@geins/ralph-module-voyado-elevate';
export default {
  mixins: [VoyadoProductPage]
};
</script>

Props

| Name | Type | Default | Description | | ------------- | ------- | ------- | ----------------------------------------------------------------------- | | configuration | Object | {} | If used as widget, the widget configuration object | | productKey | String | null | If used on product page, the productKey matching your id in Voyado feed | | randomTitles | Number | 0 | If used on product page, the number of random titles to show | | limit | Number | 8 | Number of products to fetch | | productRules | String | '' | productRules to send to Voyado for product page recommendations | | showAsRows | Boolean | false | Set to true to display CaProductList instead of CaProductListSlider |

VoyadoFilterPanel

This must be used in the same list component file where the VoyadoListPage mixin is used.

// components/organisms/CaListPageVoyado/CaListPageVoyado.vue
<template>
  <VoyadoFilterPanel
    :external-sort-options="sortOptions"
    :current-sort="sort"
    :facets="facets"
    @reset="resetHandler"
    @sortchange="sortChangeHandler"
    @selectionchange="selectionChangeHandler"
  />
</template>
<script>
import { VoyadoListPage } from '@geins/ralph-module-voyado-elevate';
export default {
  name: 'CaListPageVoyado',
  mixins: [VoyadoListPage]
};
</script>

Props

| Name | Type | Default | Description | | ------------------- | ------- | ---------- | ------------------------------------- | | externalSortOptions | Array | required | The sort options from the Voyado api | | currentSort | String | required | Current sort | | facets | Array | required | The facets from the Voyado api | | showSortAtTop | Boolean | false | Set to true to show sort above facets |

Mixins

There are three available mixins, VoyadoProductPage, VoyadoListPage and VoyadoProductCard. If you want to use Voyado for your list pages, you have to add the VoyadoListPage mixin to your list page component instead of the mixin from Ralph (MixListPage). Also, you will need to use the VoyadoProductCard mixin in the product card.

VoyadoProductCard

Since Voyado is delivering it's product data in groups of variants for each product, this mixin comes prepared to set the displayed product to the forst product of the list.

// components/organisms/CaProductCard/CaProductCard.vue
<script>
import { VoyadoProductCard } from '@geins/ralph-module-voyado-elevate';
export default {
  mixins: [VoyadoProductCard]
};
</script>

VoyadoProductPage

This mixin provides a computed property voyadoProduct that you can use to pass to the CaToggleFavorite component and to your addToCart function. It also provides a method setVoyadoData that you can use to set the product data from Voyado to the voyadoProduct property.

// pages/product/_alias.vue
<script>
import { VoyadoProductPage } from '@geins/ralph-module-voyado-elevate';
export default {
  mixins: [VoyadoProductPage]
};
</script>

VoyadoListPage

Should be used instead of MixListPage in your list page component. Either make a new one for Voyado lists or use it in CaListPage. It has basically the same set of functionality. Use pageReferance instead of currentPath and use VoyadoFilterPanel instead of CaFilterPanel.

// components/organisms/CaListPageVoyado/CaListPageVoyado.vue
<script>
import { VoyadoListPage } from '@geins/ralph-module-voyado-elevate';
export default {
  mixins: [VoyadoListPage]
};
</script>

Props

| Name | Type | Default | Description | | ------------- | ------ | ---------------------------- | --------------------------------------------------------------------------- | | type | String | 'list' | 'list' or 'search' | | query | String | $route.params.search | Current search query | | pageReference | String | decodeURI($route.path) | The same as currentPath in Ralph, used to fetch landingPage from Voyado api | | pageSize | Number | $config.productListPageSize | Number of products on each page | | listInfo | Object | required | The listInfo object from Ralph api or static list info | | defaultSort | String | 'RELEVANCE' | The default sort |

Notifications

For the Voyado notifications to work properly, you will need to use the voyadoProduct object in your product page, passing it to CaToggleFavorite and making sure that this is the product object that gets sent to your addToCart function. This object will be available through the VoyadoProductPage mixin.

Translations

Available translations:

| Key | Value | | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | VOYADO_SEARCH_FORM | Search | | VOYADO_SEARCH_FORM_PLACEHOLDER | Search | | VOYADO_SEARCH_RESULTS_TITLE | Search results | | VOYADO_SEARCH_RESULTS_NO_MATCH | Sorry, no matches found | | VOYADO_SEARCH_PRODUCT_RESULTS_TITLE | Product <PIPE> Products | | VOYADO_SEARCH_RESULTS_REMOVE_RECENT | Remove | | VOYADO_SEARCH_RECENT_SEARCHES_TITLE | Recent searches | | VOYADO_SEARCH_RESULTS_SUGGESTIONS_TITLE | Popular searches | | VOYADO_SEARCH_RESULTS_BUTTON | Show {hits} product | Show {hits} products | | VOYADO_RECOMMENDATIONS_TITLE(.....) | Will append _$list-id or $algorithm (and also _$random-nr if randomTitles are mre than 0). For example VOYADO_RECOMMENDATIONS_TITLE_UPSELL_1 |

NOTE: Replace <PIPE> with the "|" character

Dependencies

We use Voyado's helper library @apptus/esales-api for API requests.

A helper library for making requests to the eSales 4 Storefront API v3. It includes type definitions for all HTTPS responses and the library API.