Change-Set detection

Comparing to the CE, the 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

The 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 significant.

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. So 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 type casting.