Code Versions

B2C Commerce lets you have multiple custom code versions uploaded to the system at the same time. The code is arranged in a top-level directory, called Version Directories. You can name each directory in accordance with your versions, for example, v12 or summer_release.

Code Versions and the Active Version

When developing your storefront, select one active code version with which to work by going to Administration > Site Development > Code Deployment. Select a version directory as the active version for a site. All templates, pipelines, scripts, and images are taken from this active version.

B2C Commerce automatically and asynchronously removes the oldest code versions on all instance types. The active code version and the previously active code version are not included in this process. You can configure the number of retained code versions.

You can roll back your storefront to a previous version if necessary. Develop your application with a newer version while maintaining an active storefront on a stable code base.

B2C Commerce doesn't let you upload code using a .zip file containing a distinct code version. Instead, you must upload your cartridge. Most development teams have a regular method for uploading code to staging.

Troubleshooting Tip for Code Versioning

If you get the following error when you try to view the storefront, check that you are uploading your cartridge to the current code version.
Technical Page There were technical problems while the request was being processed! 
Executed Request: 
Default Technical Details: System template default used directly or indirectly in custom site 
CAUTION:
Plan to test a new code version first on a Staging instance before moving it to the Production instance.

Code Uploads to an Active or Inactive Version

Best practice is to upload code into an inactive version on a Staging instance and later replicate the code to a Development or Production instance.

Code uploads into an active version are only allowed on Staging, Development, and Sandbox instances. Production instances reject WebDAV based code uploads that occur directly into the currently active version. Code uploads onto a Production instance can only be to an inactive version.

Code Compatibility Mode

You can also specify the active compatibility mode (API version). B2C Commerce lets you activate a new compatibility mode or revert to the previously active compatibility mode.

You can replicate code to another system. Code Replication transports the active code version from the staging instance to the target production or development instance.

Note: The term Compatibility Mode is interchangeable with the term API Version.