Submitting plugins to nopCommerce marketplace

Introduction

Submitting to our marketplace is the best way for vendors to offer plugins and themes to the nopCommerce merchants. Here are some of the benefits of hosting your plugin in our marketplace:

  • Earn money by selling your plugins to nopCommerce community
  • Give your plugin greater exposure to the community
  • Track basic statistics regarding how many people are downloading
  • Get your plugin rated against the many other hosted plugins
  • Provide a centralized location for users to leave comments and feedback

IMPORTANT NOTICE. Before submitting a plugin please note that nopCommerce strongly discourages code cloning. Cloned plugins will be removed, and authors or submitters of such plugins would face the consequences from banning from the nopCommerce community up to legal action.

Requirements

After completing development of your plugin you can submit it to nopCommerce marketplace at “My extensions” page.

The plugin should solve a problem for merchants, either by adding new functionality to nopCommerce, or by creating a faster or easier way to do something that already exists within nopCommerce. We do not approve too simple plugins (for example, a home page sliders).

All plugins and themes must meet the following requirements. If one of them is not met, then we won't approve this listing until the vendor does meet it. By following all requirements (described below), you can make sure that the review process by nopCommerce team is as quick as possible.

In order to submit your extensions please go “My extensions” page and click “Upload extension” button. You’ll see the “Upload new extension” page with the following inputs:

Name

  • The extension name should indicate the purpose of the plugin or theme.
  • Maximum allowed length is 57 chars.
  • Do not include “nopCommerce” word. For example, “[your extension name] for nopCommerce” is not allowed.
  • Do not include words such as “top rated” or "the best plugin".
  • Do not include supported versions to the name. For example, “[your extension name] (3.90-4.20)” is not allowed. We have a separate input to specify a list of supported versions.
  • Do not include information about pricing to the name. For example, “[your extension name] (free)” is not allowed. We have a separate input to specify it.

Short description

  • Short description provides a quick overview of the extension.
  • Maximum allowed length is 250 chars.
  • HTML tags are not allowed.
  • Do not include words such as “top rated” or "the best plugin".
  • Do not include supported versions to the description. We have a separate input to specify a list of supported versions.
  • Do not include information about pricing to the description. We have a separate input to specify it.

Full description

This input is the most important one. It has the most popular causes for rejection. So please ensure that you read it carefully

  • Every extension requires a long and detailed description:
    • Minimum allowed length is 700 chars.
    • Description should be well-written, and provide an overview of the features and benefits of your extension.
    • Description should correspond to the actual product.
    • Make it clear what the extension can do for the merchant and how the extension works.
    • It’s highly recommended to give examples of cases when the extension might be used.
    • List features of your extensions (we recommend to list them vertically with bullet points).
    • If the extension is integrated with some third-party service (e.g. payment gateway, shipping service, etc), then include a paragraph about the service itself. To get an idea, please see the description of one of our official plugins here.
  • Include hyperlinks to functioning live demos:
    • Provide a link to a live demo store that showcases your theme or plugin so merchants can see a live demonstration of how the app works. This lets the merchant get a sense of how your app can benefit them.
    • If you submit a theme, then having a live demo is required.
    • It's also highly recommended to have a live demo for plugins (but not required).
  • Include information about support and documentation:
    • For paid plugins you should have a “contact us” page on your website so that merchant can easily contact you when they need help or have questions.
    • It’s highly recommended to have documentation and installation instructions. So if you have such “contacts us” or “documentation” pages, please include hyperlinks to them to description.
    • The promotion of additional services or other extensions from your extension profile page is not allowed. For example, installation or customization services.
  • Spell-check the description before submission.
  • This field supports HTML code. So you can format your extension description. But please note the following:
    • Do not use large or non-standard fonts and colors. It’s the most popular cause for rejection. We don’t approve such plugins.
    • <h1> tag is not allowed.
    • <\script> tag is not allowed.
    • Custom CSS should not change the design of nopCommerce official website outside of the “Description” block on the extension page. For example, the header or the footer, etc. That’s why it’s recommended to use the parent “.full-description” CSS style for each of your custom CSS style because full description of each extension is located inside a block with this “full-description” CSS style.
    • Ensure that the extension page (description) is mobile-responsive. You can use the “Preview” button to see how it looks on mobile devices.

Price

  • Your plugin can be offered for free, or sold as a commercial product.
  • If the plugin will be available for free, leave the default price of zero.
  • If the plugin is paid, then you should process payments on your website (we do no process payments for you). So a customer will complete the payment on your website. The price entered here is for information purposes only.
  • If the plugin is paid, then must tick “Available on your own website” checkbox below.
  • If the plugin is paid, then price should be the same as it’s specified on your website.
  • If the plugin is paid, please note that nopCommerce team doesn’t get any revenue share from your sales.
  • Prices are entered in USD.

Available on your own website

  • Check if you want to store the extension package on your website. Otherwise, we'll store it for you on our servers (it can be useful if you don't have your own website).
  • If your extension is commercial, then you have to store it on your website. It means that you can store only free extensions on our servers.
  • If your extension is commercial, then note that you have to process payments yourself. We do not accept payments for you.
  • If your extension is commercial, then the dedicated extension page on your website should allow a customer to buy the extension immediately. We do not approve extensions that have only contact forms without an opportunity to buy the plugin on your website.

Category

  • Specify the most appropriate category for your plugin.
  • If a category has subcategories, then you have to choose one of its subcategories. Parent categories are not available for submission.

Supported versions

  • Specify the version(s) of nopCommerce your plugin is compatible with. Just map your extension to all supported versions on this page (tick appropriate version checkboxes below).
  • We approve only packages that really support the specified versions.
  • If your application supports multiple versions, then please include all supported versions in one single package. To get an idea, please download and see how we packed one of our official plugins here.

Important notice. Extension duplicates are not allowed. It means that you cannot create two pages for the same plugin in our extensions directory if it supports two (or more) versions of nopCommerce. Please do not duplicate extensions on our website. We’ll accept only one plugin listing with all supported versions specified on it.

Images

  • You can upload up to three pictures of your extension or theme.
  • The first image will be used to represent your extensions in the marketplace catalog. So it’s the most important one.
  • At least one image should be a screenshot of user interface.
  • The second and third pictures could be screenshots of your extension. It can help visitors to understand what your user interface looks like in action.
  • Images should correspond to the actual product.
  • Use only high-quality screenshots or images.
  • The image should be in JPG or PNG format.
  • The minimum width is 600px.

Upload extension package

  • This input is visible only if you didn’t check “Available on your own website” before. So you can store your extension package on our servers (it can be useful if you don't have your own website).
  • The uploaded package should be in ZIP format with the maximum size of 10 MB.
  • The uploaded package should be ready for deployment in admin area > configuration > local plugins > "Upload plugin or theme" button. So for example, each uploaded package should have the “uploadedItems.json”. A merchant should not be required to manually upload a plugin using FTP. To get an idea, please download and see how we packed one of our official plugins here.

Download (purchase) URL

  • This input is visible only if you ticked the “Available on your own website” checkbox before.
  • If your extension is commercial, then the dedicated extension page on your website should allow a customer to buy the extension immediately. We do not approve extensions that have only contact forms without an opportunity to buy the plugin on your website.
  • If your extension is commercial, then note that you have to process payments yourself. We do not accept payments for you.
  • This URL must point directly to the dedicated extension page. Not a general page like the homepage of your website or contacts page.

Functionality. Technical review

As part of our technical review process we check functionality of each uploaded extension. But before submitting an extension, please conduct your own internal review to make sure that it is ready for publication.

Package:

  • The extension package should be in ZIP format with the maximum size of 10 MB.
  • The uploaded package should be ready for deployment in admin area > configuration > local plugins > "Upload plugin or theme" button. So for example, each uploaded package should have the “uploadedItems.json” file. A merchant should not be required to manually upload a plugin using FTP. To get an idea, please download and see how we packed one of our official plugins here.
  • Ensure that all specified nopCommerce versions are supported.

User interface and functionality:

  • The plugin should solve a problem for merchants, either by adding new functionality to nopCommerce, or by creating a faster or easier way to do something that already exists within nopCommerce. We do not approve too simple plugins (for example, a home page sliders).
  • If you upload a graphical theme, then please note that we accept only unique themes with very good quality. We do not approve simple themes with just color modifications of the default one.
  • If you upload a graphical theme, verify all image, css, and code assets correctly load on the storefront.
  • If you upload a graphical theme, ensure that it passes markup and CSS validation tests. For example, you can use W3C Markup Validation and W3C CSS Markup Validation online services.
  • Ensure that the user interface of your extension or theme is mobile-responsive.
  • Functionality works as expected (as described in the description).

Security:

  • All extensions must be secure, without viruses, malware, or vulnerabilities.
  • Your app must be protected against cross-site request forgery (CSRF) attacks, cross-site scripting (XSS) attacks, and other security vulnerabilities.
  • If your extension is used by merchants based in Europe, or merchants with buyers based in Europe, then it's your responsibility to make sure that it’s GDPR compliant.

Hyperlink or instructions to download source code

We review the source code of each extension or theme submitted to our marketplace. As part of our technical review process we check that each uploaded extension is not copied (stolen) from some other extension. Also all extensions must be secure, without viruses, malware, or vulnerabilities.

IMPORTANT NOTICE. Before submitting a plugin please note that nopCommerce strongly discourages code cloning. Cloned plugins will be removed, and authors or submitters of such plugins would face the consequences from banning from the nopCommerce community up to legal action.

  • Please specify URL where we can check source code of your extension. For example, a hyperlink to a GitHub page (you can limit access to your repository to this account if you want) or direct link to download the source code of your package. Or you can provide instructions on how we can download it in case if it requires some authentication (e.g. FTP or password protected page).
  • It should include all supported (specified) nopCommerce versions.
  • Important. The information entered here will be available to nopCommerce team only. We don’t publish it publicly.

Hyperlink or instructions to download a "ready to deploy" package

nopCommerce team does the internal testing of each extension or theme submitted to our marketplace.

  • Please specify URL or intructions where we can download the package that is ready for deployment to a live website (already built in Visual Studio).
  • The package should be in ZIP format.
  • The uploaded package should be ready for deployment in admin area > configuration > local plugins > "Upload plugin or theme" button. So for example, each uploaded package should have the “uploadedItems.json”. A merchant should not be required to manually upload a plugin using FTP. To get an idea, please download and see how we packed one of our official plugins here.
  • It should include all supported (specified) nopCommerce versions.
  • Important. The information entered here will be available to nopCommerce team only. We don’t publish it publicly.

The review process

Once you’ve submitted the extension or theme, you can visit your account page to check the status of your submission. nopCommerce team examines each extension for quality and to make sure that it meets all our requirements (including the documentation and images). If your submission does not pass our reviews, we will tell you why, and how to fix it. Otherwise, your successful submissions will be listed on our marketplace.

We’ll send all confirmation emails to the email address you’ve specified during registration (you can find it here):

  • When the extension is submitted, you’ll receive an email with “Thank you for submitting [your extension name] to nopCommerce marketplace” subject. It tells that your extension is currently under review.
  • If your extension doesn’t meet some of our requirements, you’ll receive an email with “Changes required for [your extension name]” subject. It’ll contain information with a list of requirements that are not met. So you have to update the already listing in order meet all mentioned requirements.
  • When the extension is approved by nopCommerce team, you’ll receive an email with “[your extension name] is approved to nopCommerce marketplace” subject. It means that now your extension is published on our marketplace.

So each extension can have one of the following statuses: under review, approved, rejected (changes required).

If your extension is rejected for some reasons, please do not submit a new one. You can always edit (re-submit changes) the already submitted extension. Just visit your account page, find your extension name, and click “Edit” button.