Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Introduction

...

Repository

Description

Usage

exporter-shopware6
(deprecated)

a standard Shopware6 plugin responsible to export Shopware data to Boxalino

To be replaced with the Data Integration repository

data-integration-shopware6

a Shopware6 plugin responsible to export the Shopware data following the Boxalino Data Integration Data Structures

Install and update when Boxalino provides a new version

rtux-shopware

a standard Shopware6 plugin responsible to manage all the calls to Boxalino API for your front-end

Install and update when Boxalino provides a new version

rtux-integration-showpare

a sample (tutorial) Shopware6 plugin provided to examplified how to integrate Boxalino (you can either build your own from scratch or download (and rename namespace) it to have all default features active directly, but do not copy or clone, as it is your environment and should not be updated from our repo)

Use as inspiration or download (and rename namespace) to bootstrap all features (but do not copy or clone!) and then develop, maintain and extend by yourself

...

  1. Make sure that if you export your data in dev (vs prod), that you access the API with dev=true (vs false)

  2. Make sure that you download (and rename namespace) but do not copy or clone the rtux-integration-shopware repository, even if you chose the approach “All-at-Once”. The integration layer needs to be your environment that you extend / modify and maintain.

  3. Make sure that you do not call the API before you have configured the following aspects in the Boxalino Admin and have pressed test or publish:

    1. Widgets (in the main view, even if you leave the configuration of the widget strategy empty), otherwise, the system will throw an error because you are calling a non-existing widget

    2. Layout Blocks (that all the template you need have been configured in the Layout blocks, otherwise, you cannot create your Narratives (point c))

    3. Narratives connected to Widgets of point a, as without narratives configured for the widget, your API response will be empty

    4. Click Test (or Save&Test) and wait at least 5 minutes before using the API with the parameter test=true

    5. Publish and wait at least 5 minutes before using the API with the parameter test=false

...

  1. Add the plugin to your project via composer 

    1. composer require boxalino/data-integration-shopware6

  2. Activate the plugin (Shopware6 default)

    1.  ./bin/console plugin:refresh 

    2. ./bin/console plugin:install --activate --clearCache BoxalinoDataIntegration

  3. Log in your Shopware admin and configure the plugin with the configurations provided for your setup

    1. Shopware Admin >> Settings >> System >> Plugins >> Boxalino Data Integration

      1. If the plugin configurations are not displayed, they can be accessed via direct link: admin#/sw/plugin/settings/BoxalinoDataIntegration

    2. Set configuration per Sales Channel and disable the plugin where it is not in use. The Headless channel must have the plugin disabled. 

    3. Use the ? icon to get information on the configurations options or check https://github.com/boxalino/data-integration-shopware6/wiki/Configurations

    4. More information on the available data indexes available in the wiki https://github.com/boxalino/data-integration-shopware6/wiki/Data-Indexes

  4. Add the generic services to your Integration Layer
    You can skip this step if you chose the approach “All-at-Once” and want to keep the default services.

    1. the doc_product handler is the service responsible for the export of product information (as seen on https://github.com/boxalino/rtux-integration-shopware/blob/3.0.0/src/Resources/config/services/di/product.xml )

      1. has configured a series of property handlers for different data structure export (ex: categories, stock, price, translation properties, options, image, link etc)

    2. the doc_language handler will export the existing languages for the given sales channel (https://github.com/boxalino/rtux-integration-shopware/blob/3.0.0/src/Resources/config/services/di/language.xml )

    3. the doc_attribute handler will export information on your product attributes (https://github.com/boxalino/rtux-integration-shopware/blob/3.0.0/src/Resources/config/services/di/attribute.xml )

    4. the doc_attribute_value handler will export the facet options for the product attributes (https://github.com/boxalino/rtux-integration-shopware/blob/3.0.0/src/Resources/config/services/di/attribute_value.xml )

    5. the doc_order handler is the service responsible for exporting your order information (as seen on https://github.com/boxalino/rtux-integration-shopware/blob/3.0.0/src/Resources/config/services/di/order.xml )

    6. the doc_user handler will handle the SW6 logic for exporting user information (https://github.com/boxalino/rtux-integration-shopware/blob/3.0.2/src/Resources/config/services/di/user.xml )

  5. Integrate the Product Export Console Command service (as seen on https://github.com/boxalino/rtux-integration-shopware/blob/3.0.0/src/Resources/config/services/di/product-console.xml )

  6. Trigger a full data index

    1. ./bin/console boxalino:di:full:product

    2. More options for the full data index :https://github.com/boxalino/data-integration-shopware6/wiki/Integration:-Full

    3. You can review the status of the sync process https://boxalino.atlassian.net/wiki/spaces/BPKB/pages/394559761/Sync+Request#Request-REVIEW

Tip

A full data export has started.

The data integration will log it's process in a dedicated log ./var/log/boxalino-di-product-env.log

...

In this section, we present the building process of the integration layer with the approach described above as “All-At-Once”. This strategy is being described in the video tutorial https://www.youtube.com/watch?v=Fl8d0MO0ub0

...

  1. Create an empty Shopware6 plugin skeleton in your project codebase by following your project practices: in custom/plugins or vendor path

  2. From a project level, require & activate the Data Integration Layer and the Framework Layer

    1. composer require boxalino/rtux-shopware

    2. composer require boxalino/data-integration-shopware6

    3. ./bin/console plugin:refresh

    4. ./bin/console plugin:install --activate --clearCache BoxalinoDataIntegration BoxalinoRealTimeUserExperience

  3. Download the Boxalino Guidelines for the Integration Layer from the public repository

    1. we recommend to download the latest available tag

  4. Review the downloaded version composer.json

  5. From the downloaded archive, extract the src folder

  6. From the src folder, delete the Shopware Plugin Class

    1. this file is specific to every plugin and your default/base Shopware6 Integration Layer Plugin already has one

  7. Copy the src folder in your project`s Integration Layer

    1. by doing so, you are merging the content of the Integration Guidelines in your own code-base

    2. if your project does not require the extended features (ex: Instant Update ) - disable it`s load by commenting this imported XML

    3. (optional) replace the /src/Resources/config/plugin.png with your agency`s icon or remove it

  8. Change the namespace by:

    1. replacing Boxalino\RealTimeUserExperienceIntegration with your own project`s Integration Layer namespace

  9. Install and Activate your project`s Integration Layer plugin (Shopware6 command)

  10. Re-compile the theme (administration and frontend)

    1. ./bin/build-administration.sh

    2. ./bin/build-storefront.sh

  11. Configure the Data Integration Layer and Framework Layer in Shopware 6 admin

    1. check out the Data Integration Layer Configurations wiki https://github.com/boxalino/data-integration-shopware6/wiki/Configurations

      1. set the DI configuration per Sales Channel and disable the plugin where it is not in use

      2. the Headless channel must have the plugins disabled

    2. check out the Framework Layer Configurations wiki https://github.com/boxalino/rtux-shopware/wiki/Configurations

  12. Run the data exporter command in order to initialize your account`s data index

    1. ./bin/console boxalino:di:full:product

    2. each repository has it`s own individual logger handler; the logs are saved in boxalino-di-<type>-<env>.log files

    3. read more on the available data indexes on the SOLR data indexes wiki page https://github.com/boxalino/data-integration-shopware6/wiki/Data-Indexes

    4. you can review the status of the SOLR sync with the use of our open API https://boxalino.atlassian.net/wiki/spaces/BPKB/pages/394559761/Sync+Request#Request-REVIEW

  13. Load the Narrative JSON Guidelines in Boxalino Intelligence Admin

    1. ask Boxalino on the setup channel to assist

      1. provide your project`s Integration Layer namespace

    2. do it yourself

      1. check out the JSON Guidelines page https://github.com/boxalino/rtux-integration-shopware/wiki/JSON-Guidelines-(Complete)

      2. copy each JSON content in the required path from Boxalino Intelligence Admin

        1. Menu: Advanced >> Template Resources

          1. copy and load as they are

        2. Menu: Merchandising >> Facets

          1. copy and load as they are

        3. Menu: Marketing >> Layout Block

          1. copy the JSON structure

          2. replace the @BoxalinoRealTimeUserExperienceIntegration namespace with your project`s Integration Layer namespace

          3. load in Boxalino Intelligence Admin

        4. Menu: Marketing >> Narratives

          1. copy and load as they are

        5. Menu: Strategies >> Touch Point Optimizers >> Search block >> click on the search widget

          1. copy, import and save&test as they are

  14. Per Shopware6 layout-strategy, the category uses the Shopping Experiences layouts. In order to enable navigation and edit the home page - new layouts with the narrative CMS block must be created.

    1. check out CMS Element (for Shopping Experiences) Configurations and Practices

...