< Back
Print

Backward Compatibility Philosophy

The SAWSConnector is software which is constantly developed on. It receives regular updates with new features, optimizations, fixes as well as compatibility updates to newer Centric PXM versions. In these updates, we follow the following backward compatibility philosophies.

Backward compatibility to older Centric PXM versions

The SAWSConnector is always maintained to be compatible with the newest Centric PXM (formerly Contentserv PIM) version. Sometimes Centric introduces breaking changes which causes existing implementations to become erroneous. Often then our updated implementations are hence not compatible with previous Centric PXM versions. Our development team uses all available tools in the implementation to stay compatible with as many Centric PXM versions as possible.

For example classes like SCFileTool are implemented to support older file functions as well as the newly introduced ones.

We also introduced the multi-vendor system for the compatibility to older Centric PXM versions. The vendor folder contains the used libraries of the connectors. These must be compatible to the libraries used by Centric PXM. The connector has therefore multiple versions of vendors installed to use the correct libraries fitting to the Centric PXM version in which the connector is currently installed.

 

Backward compatibility to older SAWSConnector configurations

We are proud to say that the SAWSConnector is compatible with almost every existing configuration. In very rare cases, options have been removed or their logic has been adjusted slightly. In these cases, the removed option was often erroneous in the first place, or its logic was already configurable in a better way that most users were already using. Nevertheless, these rare changes are only made in our major updates, not stability updates.

Some options are also marked as deprecated. This means they have been replaced by a new option and will be removed in an upcoming feature version in the next few years. In this case, our vision for the option changed so drastically that it was impossible to implement a backward compatible solution for old configurations, but we still wanted to introduce the new option. It is therefore recommended that you update your configuration to the new options to ensure compatibility with future updates.

Here is an example from the Shopware 6 connector (version 1.20 → 1.21). We collected a lot of feedback on how the net or gross price should be calculated, and how the advanced pricing should be configured. However, we were unable to achieve this by improving the old price format without introducing breaking changes. Therefore, a new format has been designed and the old one has been marked as deprecated.

 

Backward compatibility to custom SAWSConnector extensions

You can develop your own custom SAWSConnector extensions/plugins, also known as project-side implementations/plugins. These are most often used to implement additional connector formats (e.g. a format that loads data from a company server) or to extend the range of Active Jobs available. Naturally, these implementations use SAWS code functions. Our development team tries to ensure that these functions remain backward compatible so that they continue to work with project-side implementations.

However, if a newer PHP version forces us to change the code, this can introduce breaking changes. In this case, the project-side plugins may also require adjustments, unless they are already compatible with the newer PHP version.

If one of our API functions is replaced, the PHP Doc Deprecation feature will notify the programmer that the function is deprecated and explain how to update the code. Therefore, we recommend using an IDE that highlights deprecated functions, such as Visual Studio Code with PHP Intelephense.

Was this article helpful?
How can we improve this article?
Please submit the reason for your vote so that we can improve the article.
Table of Contents