Oracle Commerce (ATG) has been offering the Commerce Reference Store (CRS) as a reference implementation since ATG 9.0, which is one of the latest of a small line of reference implementation since the earlier days of ATG. Past incarnations included PioneerCycling, Motorprise and even a CSR reference implementation (which is no longer available); however, unlike the previous implementations, the Commerce Reference Store offers a more modern and complete implementation.
Just like any tool, there are some things in which the CRS excels, though there can be a few pitfalls in trying to use it as a framework.
- CRS showcases Oracle Commerce functionality, however it’s hard to visualize a framework on its own. The Commerce Reference Store showcases the functionality Oracle Commerce provides – just as a model home would showcase the architectural blueprints.
- CRS provides concrete implementation examples, which is helpful for developers new to the Oracle Commerce technologies. It uses the Oracle Commerce framework, serving as an example on how to develop new functionality.
- CRS is not a framework. While CRS uses the Oracle Commerce framework, highlights its usage, and adds some utility methods, in the end it is essentially a reference.
- CRS is not upgradable, and rightly so; because it is a reference application, it should be used as such. Clients who have used it as a basis for their sites will find that certain functionalities will not work when upgrading to a new major version (from ATG 9 to ATG 10 or ATG 10 to Oracle Commerce 11). There are ways to get around this issue, but they are painful and architecturally unsound.
- CRS is not supported. If an issue is found in Commerce Reference Store, it may not be fixed. If there is an issue with the core Oracle Commerce framework, Oracle will address the problem.
Commerce Reference Store is a great reference for both business and technical folks showcasing all that Oracle Commerce has to offer. However as its name suggests, it should only be used for reference; a new implementation should always be based off of the main framework.