Change-set detection

Comparing to the Pacemaker Community Edition (CE), the Pacemaker Professional Edition (PE) comes with a change-set detection feature that detects, based on a configurable set of attributes, if the entity has changed since the last import.

Console

Change-set detection can be activated when invoking the appropriate import command.

To activate it, add the parameter --use-change-set=true when invoking the import, e.g.

vendor/bin/import-pro import:products --cache-enabled=true --use-change-set=true

Do not forget to add the --cache-enabled=true parameter also, otherwise, performance will be reduced significantly.

Configuration

The change-set configuration is a simple array with the attribute names as values, that can be configured individually for each entity, e.g. for the entity catalog_product_entity.

the default configuration looks like

{
  "change-sets": {
    "catalog_product_entity": {
      "type_id": null,
      "updated_at": null,
      "has_options": null,
      "attribute_set_id": null,
      "required_options": null
    }
  }
}

If the value has to be converted to a specific type, e.g. an integer, before it should be compared against the one in the database, it is also possible to specify the type as value.

For example the change-set configuration for the entity catalog_category_product only tries to detect changes of the position attribute, whereas the position attribute must be of type integer

{
  "change-sets": {
    "catalog_category_product": {
      "position": "integer"
    }
  }
}

To override the default configuration, a snipped with the appropriate changes of the change-set configuration can be added, e.g. <magento-install-dir>/app/etc/configuration/change-sets.json.

All values in the database and the CSV files are in general of type string.

It is not necessary to define the type string, instead not specify a value and setting it to null will prevent Pacemaker from doing the expensive typecasting.