DI: Migration from Exporter to Data Integration - boxalino/rtux-integration-magento2 GitHub Wiki

The migration from the Exporter plugin (exporter-magento2) to the the new GCP-based Data Integration service is done by converting your project data sources to Boxalino Data Structure.

The generic flow of the integration is described in our confluence page

Changes to the data in your API response

The difference in export between exporter-magento2 & data-integration-magento2 is at the level of property names: the product attributes are exported as they are.

This means the prefix products_ must be removed from your integration templates & return fields.

The migration can happen first on an environment with dev=true, test=false. This will update the dev data index and allow to make IA optimization changes for test=true (test configurations). The code changes can be pushed to prod once it is confirmed the data index is in the final stages of being replaced.

Migration steps

1. Add the repository to your project, configure & do a first full sync

This step will create the data index based on the new data structure. Instructions: https://boxalino.atlassian.net/wiki/spaces/BPKB/pages/392396801/Magento+2#Setup-for-the-Data-Integration-Layer-%5BinlineCard%5D

1.2 Disable (from configurations) the boxalino/exporter-magento2 plugin

2. Update the other dependencies

Use the latest versions for boxalino/rtux-magento2 & boxalino/rtux-api-php

3. Update the API request default filters (remove "products_" filters property)

  1. Adjust (add if missing or update) the requested filter fields getVisibilityFilter() and getActiveFilter() as seen in the IntegrationContextTrait

  2. Update the filter fields in the autocomplete mixin (JS)

4. Update the API request returnFields (remove "products_" from returnFields property)

Review your code for any getReturnFields() function definitions (if you followed the integration guidelines, they are part of the Model\Api\Request\Context models

The returnFields for autocomplete/quick-search are configured in IA - search widget. You can edit them directly in IA or contact Boxalino for assistance :) (it`s a one-time update)

5. Update the template files (remove products_ from requested field names)

One of such template is the autocomplete template

Review your whole integration layer repository for any products_ prefixes in templates. Those must be removed.

6*. Remove the property provider prefix

Review your Model\Api\Context files and remove the line $this->filterablePropertyProvider->setPropertyPrefix("products_"); (example)

7. Remove boxalino/exporter-magento2 plugin

Remove both the plugin and any integration code in your di.xml / crontab.xml / indexer.xml / mview.xml (namespace: Boxalino\Exporter)

Regular Data Synchronization

1. Do a full sync for user & order

This is required only once per migration. Future syncs for users & order happen via a delta.

2. Integrate the delta data syncs

https://github.com/boxalino/data-integration-magento2/wiki/Integration:-Delta

  • 8.1 Product (every hour)
  • 8.2 Order (once per day)
  • 8.3 User (once per day)

3. Integrate the daily product full syncs (CLI cronjob)

https://github.com/boxalino/data-integration-magento2/wiki/Integration:-Full#3-declare-a-cli-command

If your integration decision at step #2 is MVIEW - make sure to integrate the DI full for MVIEW as well