PHPackages                             nosto/nosto-integration - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. nosto/nosto-integration

ActiveShopware-platform-plugin[API Development](/categories/api)

nosto/nosto-integration
=======================

Nosto Integration

6.1.24(2d ago)32.1k↓78.1%2[9 PRs](https://github.com/Nosto/nosto-shopware6/pulls)OSL-3.0PHPPHP ^8.2CI passing

Since Jan 31Pushed 2w ago4 watchersCompare

[ Source](https://github.com/Nosto/nosto-shopware6)[ Packagist](https://packagist.org/packages/nosto/nosto-integration)[ RSS](/packages/nosto-nosto-integration/feed)WikiDiscussions develop Synced today

READMEChangelog (10)Dependencies (26)Versions (204)Used By (0)

Table of contents
=================

[](#table-of-contents)

1. [Personalization for Shopware](#personalization)
    1. [Getting started](#getting-started)
        1. [How it works](#how-it-works)
2. [Installation](#installation)
    1. [Community](#installation-store)
    2. [Zip archive](#installation-zip)
3. [Configuration](#configuration)
    1. [Account Settings Overview](#configuration-account-settings)
    2. [General Settings Overview](#configuration-general-settings)
    3. [Tags Assignment Overview](#configuration-tag-assignment)
    4. [Feature Flags Overview](#configuration-features-flags)
4. [Uninstallation](#uninstallation)
5. [Nosto Plugin Job Scheduling](#job-scheduling)
    1. [Features of Job Scheduling Dashboard](#job-scheduling-features)
    2. [Views of Job Scheduling Dashboard](#job-scheduling-view)
        1. [Listing View](#job-scheduling-view-listing)
        2. [Grouped View](#job-scheduling-view-group)
        3. [Chart View](#job-scheduling-view-chart)
    3. [Auto Load](#job-scheduling-auto-load)
6. [Dependencies](#dependencies)
7. [Development](#development)
    1. [Local Setup](#local-setup)
    2. [Test Setup](#test-setup)

Personalization for Shopware
============================

[](#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](https://nosto.com/)

Getting started
---------------

[](#getting-started)

### How it works

[](#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
============

[](#installation)

Plugin can be installed in such ways:

1. Community store (preferred)
2. Zip archive

The commands that need to be executed after installing the plugin from the root of the Shopware installation are: `./bin/build-administration.sh``./bin/build-storefront.sh`

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

Community (preferred)
---------------------

[](#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](https://store.shopware.com/). 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
-----------

[](#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](https://store.shopware.com/).
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
=============

[](#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
-------------------------

[](#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.

[![Sales Chanels](docs/images/sales-chanels.png?raw=true)](docs/images/sales-chanels.png?raw=true)

[![Account Settings](docs/images/sw-account-settings.png?raw=true)](docs/images/sw-account-settings.png?raw=true)

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](https://help.nosto.com/en/articles/613483-settings-account-settings).
4. Required Field with account name. It can be retrieved in Nosto account (in account settings), additional guides can be found [here](https://help.nosto.com/en/articles/613483-settings-account-settings).
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](https://help.nosto.com/en/articles/613616-settings-authentication-tokens).
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](https://help.nosto.com/en/articles/613616-settings-authentication-tokens).
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](https://help.nosto.com/en/articles/613616-settings-authentication-tokens).
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](https://help.nosto.com/en/articles/613616-settings-authentication-tokens).
9. A token for accessing the Rates API. You can request an API token (API\_RATES) by getting in touch with Nosto Technical Support. Once the token has been granted, you will be able to find it listed in the authentication tokens section in the admin.

General Settings Overview
-------------------------

[](#general-settings-overview)

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

[![General Settings](docs/images/general-settings.png?raw=true)](docs/images/general-settings.png?raw=true)

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
------------------------

[](#tags-assignment-overview)

[![Tag Assignment](docs/images/tag-settings.png?raw=true)](docs/images/tag-settings.png?raw=true)

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.](docs/images/tag-nosto.png?raw=true)](docs/images/tag-nosto.png?raw=true)

Features Flags Overview
-----------------------

[](#features-flags-overview)

[![Feature Flags](docs/images/features-flags-with-mc.png?raw=true)](docs/images/features-flags-with-mc.png?raw=true)

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
==============

[](#uninstallation)

The plugin can be uninstalled from within Shopware admin My Extensions section, with standard shopware flow. More information can be found [here](https://docs.shopware.com/en/shopware-6-en/extensions/myextensions)

Nosto Plugin Job Scheduling
===========================

[](#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](docs/images/job-navigation.png?raw=true)](docs/images/job-navigation.png?raw=true)

Features of Job Scheduling Dashboard
------------------------------------

[](#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](docs/images/job-scheduler-main.png?raw=true)](docs/images/job-scheduler-main.png?raw=true)

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 nameInformationScreenshotNameJob Name[![Job Name](images/job-scheduler-name.png?raw=true)](images/job-scheduler-name.png?raw=true)StatusThere are 4 type of statuses: Success, Failed, Running, Pending[![Job Status](images/job-scheduler-status.png?raw=true)](images/job-scheduler-status.png?raw=true)Started At, Created At, Finished AtJob’s creation, starting and finishing dates.[![Job Date](images/job-scheduler-date.png?raw=true)](images/job-scheduler-date.png?raw=true)Child jobsIn 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](images/job-scheduler-child.gif?raw=true)](images/job-scheduler-child.gif?raw=true)MessagesIn 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](images/job-scheduler-messages.gif?raw=true)](images/job-scheduler-messages.gif?raw=true)

Views of Job Scheduling Dashboard
---------------------------------

[](#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](docs/images/job-scheduler-switch-view.png?raw=true)](docs/images/job-scheduler-switch-view.png?raw=true)

### Listing View

[](#listing-view)

List view is the default view of the dashboard with filtering support. [![Listing View](docs/images/job-scheduler-listing-view.png?raw=true)](docs/images/job-scheduler-listing-view.png?raw=true)

### Grouped view

[](#grouped-view)

[![Grouped View](docs/images/job-scheduler-grouped-view.gif?raw=true)](docs/images/job-scheduler-grouped-view.gif?raw=true)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](docs/images/job-scheduler-group-change.png?raw=true)](docs/images/job-scheduler-group-change.png?raw=true)

### Chart 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](docs/images/job-scheduler-chart.gif?raw=true)](docs/images/job-scheduler-chart.gif?raw=true)

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
---------

[](#auto-load)

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

[![Autoload](docs/images/job-scheduler-autoload.png?raw=true)](docs/images/job-scheduler-autoload.png?raw=true)

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
============

[](#dependencies)

- [Nosto Job Scheduler](https://github.com/Nosto/shopware6-job-scheduler) which is included in the plugin sources

Development
===========

[](#development)

Local setup
-----------

[](#local-setup)

This setup requires the installation of the [Shopware CLI](https://sw-cli.fos.gg/install/).

1. Install the shop with `shopware-cli project create  `
    - 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
----------

[](#test-setup)

1. Follow the local setup above
2. Shop folder: `composer require symfony/test-pack --dev`
3. Plugin folder: `composer test`
    - Run this from `custom/plugins/nosto-shopware6`
    - It executes the full PHPUnit suite using `phpunit.xml.dist`
    - 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 `_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

To run a single test class or method from the plugin folder:

```
./vendor/bin/phpunit --configuration=phpunit.xml.dist --filter DailyProductSyncScheduledTaskHandlerTest tests/Unit/Service/ScheduledTask
./vendor/bin/phpunit --configuration=phpunit.xml.dist --filter testRunTriggersTheFullCatalogSyncOncePerDay tests/Unit/Service/ScheduledTask/DailyProductSyncScheduledTaskHandlerTest.php
```

###  Health Score

56

—

FairBetter than 97% of packages

Maintenance98

Actively maintained with recent releases

Popularity22

Limited adoption so far

Community21

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor3

3 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

151

Last Release

2d ago

Major Versions

3.6.10 → 6.1.172026-05-13

5.2.18 → 6.1.182026-06-03

5.2.21 → 6.1.212026-06-15

5.2.22 → 6.1.232026-06-18

3.6.12 → 6.1.242026-07-02

PHP version history (2 changes)3.0.0PHP ^8.1

4.0.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/72fc62faab717a903a7ddd1dc340b920403cbd382ce7b6eb30044430f69eeced?d=identicon)[nosto](/maintainers/nosto)

---

Top Contributors

[![TobiasGraml11](https://avatars.githubusercontent.com/u/51320851?v=4)](https://github.com/TobiasGraml11 "TobiasGraml11 (367 commits)")[![prahimi94](https://avatars.githubusercontent.com/u/182894291?v=4)](https://github.com/prahimi94 "prahimi94 (195 commits)")[![Radomir98](https://avatars.githubusercontent.com/u/153912622?v=4)](https://github.com/Radomir98 "Radomir98 (190 commits)")[![iganulevics](https://avatars.githubusercontent.com/u/162290733?v=4)](https://github.com/iganulevics "iganulevics (188 commits)")[![vladimirchagorovski](https://avatars.githubusercontent.com/u/260430169?v=4)](https://github.com/vladimirchagorovski "vladimirchagorovski (114 commits)")[![Bibarella](https://avatars.githubusercontent.com/u/36549236?v=4)](https://github.com/Bibarella "Bibarella (74 commits)")[![lisafindo](https://avatars.githubusercontent.com/u/47558295?v=4)](https://github.com/lisafindo "lisafindo (68 commits)")[![romanhrynch](https://avatars.githubusercontent.com/u/52411092?v=4)](https://github.com/romanhrynch "romanhrynch (50 commits)")[![bojand-soprex](https://avatars.githubusercontent.com/u/103487672?v=4)](https://github.com/bojand-soprex "bojand-soprex (35 commits)")[![SergiyStasyuk](https://avatars.githubusercontent.com/u/41483861?v=4)](https://github.com/SergiyStasyuk "SergiyStasyuk (34 commits)")[![ugljesaspx](https://avatars.githubusercontent.com/u/153918141?v=4)](https://github.com/ugljesaspx "ugljesaspx (32 commits)")[![atolev](https://avatars.githubusercontent.com/u/62422027?v=4)](https://github.com/atolev "atolev (24 commits)")[![baranyk](https://avatars.githubusercontent.com/u/65361189?v=4)](https://github.com/baranyk "baranyk (19 commits)")[![pinco447](https://avatars.githubusercontent.com/u/57620246?v=4)](https://github.com/pinco447 "pinco447 (15 commits)")[![supercid](https://avatars.githubusercontent.com/u/2778820?v=4)](https://github.com/supercid "supercid (9 commits)")[![artiommatvejev](https://avatars.githubusercontent.com/u/185074651?v=4)](https://github.com/artiommatvejev "artiommatvejev (8 commits)")

###  Code Quality

TestsPHPUnit

Code StyleECS

### Embed Badge

![Health badge](/badges/nosto-nosto-integration/health.svg)

```
[![Health](https://phpackages.com/badges/nosto-nosto-integration/health.svg)](https://phpackages.com/packages/nosto-nosto-integration)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35916.4M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24016.2M20](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172445.0k15](/packages/pocketmine-bedrock-protocol)[nosto/module-nostotagging

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

27703.7k4](/packages/nosto-module-nostotagging)[botman/driver-telegram

Telegram driver for BotMan

93459.5k6](/packages/botman-driver-telegram)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
