Documentation

Ucommerce includes full API reference documentation and lots of helpful articles to help you build your e-commerce site as effortlessly as possible.

Topics Payment Providers
v7.18

Guidelines for Apps

With great power comes great responsibility!

As part of the curation process for Apps, we've compiled a list of recommended guidelines to ensure high quality apps that can work across all the content management systems that Ucommerce integrates with and are compatible with other installed apps as well.

The points mentioned in this section are our mail focus points in the curation process of apps.

To help you build your shiny new app, you can get inspiration from the Ucommerce Sample App project. It contains examples of the most common extensions and conventions you need to follow.

For first steps you might want to use the Ucommerce App Template from the Visual Studio Marketplace. This will ensure that some of the information in this article is implemented and you will also have some starting examples. You also won't have to worry about packaging it as a Nuget package.

Component Ids

Unique component ids are important to avoid conflicts between apps unless you're specifically looking to override existing components of Ucommerce or others apps. For more information about overriding components in Ucommerce, have a look at our documentation page.

To avoid this, your component ids should be prefixed with the app name, i.e. MyApp.MyComponent as opposed to simply MyComponent.

Ucommerce will pick up all the .config in the {root}/ucommerce/Apps/ folder and therefore the ids of the components registered are very important, as you shouldn't override other app developer's components.

Dependencies

Ucommerce Dependencies

Your app package shouldn't contain any Ucommerce assemblies as they will already be present on the file system when your package is installed. Ucommerce core tools like Castle Windsor or NHibernate should not be part of the package either.

CMS Dependencies

To make your app run across all CMSs supported by Ucommerce, your app must depend on the Ucommerce CMS abstractions instead of CMS's own implementations.

This also ensures that your app will work when additional CMS integrations are released. You're always welcome to contact us if you feel we're missing something obivous that will help you build your app.

Other Dependencies

To avoid dependency conflicts, between your app and other apps, it is best practice that all of your app's assembly dependencies are signed.

This is to ensure that .NET always picks the right assembly if the same assembly is present in multiple versions. Unsigned assemblies (assmeblies with PublicKeyToken=null) are considered the same version regardless of version number of the assembly.

Your app can't contain the assembly System.Web.Mvc.

Installing Your App

Go to the Ucommerce backend and open "Settings" -> "Apps" -> "Install App" in the menu tree to the left. Upload the your app's ..nupkg file and click the upload button. In the details page for the app click the install button.

When your app is installed, views, binaries, and configuration will be added to the Apps folder, e.g. uCommmerce/Apps/MyApp. As Ucommerce starts it will load the assembly dependencies of all the installed apps.

Your app may need to setup something for your app to work, for this there is an initialization pipeline, which is run when Ucommerce starts up.

Documentation

The documentation for you app can be part of the .nuget pacakge that you upload to the app store and the documentation will be hosted on our documentation site.

Support

Supporting your app is important because users will have questions about your app that won't be covered in your documentation, they will encounter bugs using your app and they will need your help, and Users will have suggestions to changes and extensions that you might not have thought about.