Skip to content

Nosto/nosto-shopware6

Repository files navigation

Table of contents

  1. Personalization for Shopware
    1. Getting started
      1. How it works
  2. Installation
    1. Community
    2. Zip archive
  3. Configuration
    1. Account Settings Overview
    2. General Settings Overview
    3. Tags Assignment Overview
    4. Feature Flags Overview
  4. Uninstallation
  5. Nosto Plugin Job Scheduling
    1. Features of Job Scheduling Dashboard
    2. Views of Job Scheduling Dashboard
      1. Listing View
      2. Grouped View
      3. Chart View
    3. Auto Load
  6. Dependencies
  7. Development
    1. Local Setup
    2. Test Setup

Personalization for Shopware

Increase your conversion rate and average order value by delivering your customers personalized product recommendations throughout their shopping journey.

Nosto allows you to deliver every customer a personalized shopping experience through recommendations based on their unique user behavior - increasing conversion, average order value and customer retention as a result.

https://nosto.com

Getting started

How it works

The plugin adds new block category called Nosto Components and a block called Nosto in Shopping Experiences. This element requires element id which can be found in Placements of Campaigns section of your Nosto Admin. The element can be put in any CMS-page of you shop and the plugin automatically adds product recommendation elements to the corresponding location when it's configured and active for the sales channel. Basically, cms-element is an empty "div" placeholder element and this "div" are automatically populated with product recommendations from your shop.

This is possible by mining data from the shop when the user visits the pages. For example, when the user is browsing a product page, the product information is asynchronously sent to Nosto, that in turn delivers product recommendations based on that product to the shop and displays them to the user.

The more users that are visiting the site, and the more page views they create, the better and more accurate the recommendations become.

In addition to the recommendation elements and the real time data gathering, the plugin also includes some behind the scenes features for keeping the product information up to date and keeping track of orders in the shop.

Every time a product is updated in the shop, e.g. the price is changed, the information is sent to Nosto over an API. This will sync the data across all the users visiting the shop that will see up-to-date recommendations.

All orders that are placed in the shop are also sent to Nosto. This is done to keep track of the orders that were a direct result of the product recommendations, i.e. when a user clicks a product in the recommendation, adds it to the shopping cart and places the order.

Nosto also keeps track of the order statuses, i.e. when an order is changed to "payed" or "canceled" the order is updated over an API and newsletter subscribers.

All you need to take Nosto into use in your shop, is to create a Nosto account for your shop, install and configure the plugin in you shop. This is as easy as clicking a button, so read on.

Installation

Plugin can be installed in such ways:

  1. Community store (preferred)
  2. Zip archive

Also, the plugin has the embedded dependency of Nosto Job Scheduler. It's delivered with plugin sources.

Community (preferred)

The plugin can be automatically downloaded and installed from within Shopware admin My Extensions section, if you have connected your Shopware account to the installation. The plugin is found under the Customer account + Personalization section in My Extensions, or by searching for "nosto". If you can't find it, you can also manually download it from the Community store. Once you've found the plugin, simply click Download now button on the plugin page and follow the instructions to activate the plugin.

Zip archive

The plugin can also be installed by uploading zip archive in Shopware admin My Extensions section. The plugin archive can be downloaded in the Community store.
If the plugin is set up for local development, the archive can also be generated with shopware-cli extension zip . --disable-git.

After this, the plugin can be activated in Shopware admin My Extensions section.

Configuration

The Nosto plugin has a separate settings page. You can configure values for each sales channel and it's configured languages.

Settings → Extensions → Nosto

Account Settings Overview

There are basic configuration fields and control buttons are located in plugin configuration page marked with digits:

Note

The account settings are only available for a specific sales channel and language. There are no global account settings.

Account Settings

  1. Field which indicates is configured account is enabled for merchandising/product sync.
  2. Api validation button, which will validate the tokens mentioned below and the result will be shown in the notification windows.
  3. Required Field with account id. It can be retrieved in Nosto account (in account settings), additional guides can be found here.
  4. Required Field with account name. It can be retrieved in Nosto account (in account settings), additional guides can be found here.
  5. Required Field with Product Token API key (API_PRODUCTS). Is used to synchronize products between Shopware and Nosto . The key must be requested from Nosto Technical Support, after which it will appear in authentication tokens section in the admin, additional guides can be found here.
  6. Required Field with Email Token API key, (API_EMAIL). Is used to synchronize emails between Shopware and Nosto . The key must be requested from Nosto Technical Support, after which it will appear in authentication tokens section in the admin, additional guides can be found here.
  7. Required Field with GraphQL Token API key, (API_APPS). Is used to synchronize orders, recommendations, segments, category merchandising products between Shopware and Nosto . The key must be requested from Nosto Technical Support, after which it will appear in authentication tokens section in the admin, additional guides can be found here.
  8. Required Field with Search Token API key, (API_SEARCH). Is used for all the search requests, when using the plug-and-play solution. The key must be requested from Nosto Technical Support, after which it will appear in authentication tokens section in the admin, additional guides can be found here.
  9. Category update button, which will synchronize all the categories for the Category Merchandising.

General Settings Overview

Some configurations are only available globally or for a specific channel.

General Settings

  1. By enabling this setting, Nosto tracking JS scripts will be initialized and loaded directly after guest’s very first interaction with storefront page. It can be used for prevent storefront performance issues during page loading.
  2. Channel specific The selected domain will be used for the product URLs during the product sync.

Tags Assignment Overview

Tag Assignment

All fields displayed in the “Tags assignment“ card are used to transfer product’s custom fields values to the associated Nosto product entity.
Nosto product entity.

Features Flags Overview

Feature Flags

This configuration card contains multiple feature toggles which enable/disable what information to send to Nosto with product data. Also, there is possibility to enabling/disable ratings and reviews. Nosto supports tagging the rating and review metadata. The rating value and review count metadata can be used for creating advanced recommendation rules to promote products that are well reviewed.

Uninstallation

The plugin can be uninstalled from within Shopware admin My Extensions section, with standard shopware flow. More information can be found here

Nosto Plugin Job Scheduling

Once the plugin is installed and activated, in Shopware 6 administration you should be able to see the menu item under the Marketing tab which will take us to the Nosto plugin dashboard. Marketing → Nosto Jobs Listing Job Navigation

Features of Job Scheduling Dashboard

Once you are on the Nosto job listing page, you should be able to see the scheduled jobs list.

Job Navigation Main

On the job listing page we are able to reach out to the complete job information. After plugin installation all products can be synced with Nosto via scheduling associated jobs by clicking over the control button “Schedule Full Product Sync”.

There are 7 columns here with the proper information about the current job.

Column name Information Screenshot
Name Job Name Job Name
Status There are 4 type of statuses: Success, Failed, Running, Pending Job Status
Started At, Created At, Finished At Job’s creation, starting and finishing dates. Job Date
Child jobs In this column we have 3 types of dot badges:
Green dot badge indicates to us how many successful sub jobs our current job has.
Gray dot badge indicates to us how many pending sub jobs our current job has.
Red dot badge indicates to us how many failed sub jobs our current job has.
By clicking on the corresponding row of the current job in the sub jobs column pop-up will open with the detailed listed view of the sub jobs of the current job.
Child Job
Messages In the messages column we can see the colored icons and the numbers in front of them.
Blue: Indicates to us the quantity of the INFO type messages.
Yellow: Indicates to us the quantity of the WARNING type messages.
Red: Indicates to us the quantity of the ERROR type messages.
By clicking on the corresponding row of the current job in the messages column the pop-up will open with the messages of the current job.
Messages

Views of Job Scheduling Dashboard

There are 3 different type of dashboard view in Nosto plugin. View modes can be switched from the dashboard action bar on top of the job listing.

Switch View

Listing View

List view is the default view of the dashboard with filtering support. Listing View

Grouped view

Grouped View The grouped view has 2 types of grouping itself.

  1. Group by status
  2. Group by Job type.

Grouping types can be switched from the action bar at the top.

Grouped View

Chart view

Charts view allows us to group the jobs by type or by status and show them divided by dates. At the top of the charts bar we have the dropdown selection where we can select the date range: 30 Days.
14 Days.
7 Days.
Last 24 hours.
Yesterday.

By clicking on the colored dot badge we can hide/show the chart line and info corresponding to the badge color and the type/status in front of it. Chart View

At the bottom of the charts there are colored dot badges with the chart line name (corresponding to the chart grouping mode status/type).

Auto Load

In the Actions at the top of the Nosto dashboard there is a switch field named Auto Load.

Autoload

Job Listing page has auto-reload feature so you don't even need to reload whole page to check job’s execution statuses. Listing data refreshes automatically every 1 minute.

Listing page contains all Nosto plugin jobs:

  1. Changelog Entity Sync Operation - parent backlog events processing operation over the child's - Marketing Permission Sync Operation (newsletter), Order Sync Operation (New Order, Updated Order events), and Product Sync Operation.
  2. Full Catalog Sync Operation - synchronize products - parent of the Product Sync Operation.

Dependencies

Development

Local setup

This setup requires the installation of the Shopware CLI.

  1. Install the shop with shopware-cli project create <folder> <version>
    • Follow the instructions from the terminal to set up the store
  2. Clone or mount the plugin repository into custom/plugins. (Symlinking is not supported)
  3. Install all plugin dependencies
    1. composer install
    2. npm install
  4. In the store root, run the following command
    1. bin/console plugin:refresh
    2. bin/console plugin:install NostoIntegration --activate --clearCache

Test setup

  1. Follow the local setup above
  2. Shop folder: composer require symfony/test-pack --dev
  3. Plugin folder: composer test
    • The tests will fail for this first run
    • This will create the test database and run the migrations
    • The database name will be the configured DB name suffixed with _test
  4. Shop folder: Change your database name in the env file to <databaseName>_test
  5. Shop folder: Run the following command
    1. bin/console plugin:refresh
    2. bin/console plugin:install NostoIntegration --activate --clearCache

Now you can go back to point 3 and it will run successfully