27

I have created a Magento 2 extension which I wanted to upload on Magento Marketplace.

When I tried to upload my extension it got rejected multiple times with one or the other reason. Due to this and multiple submission, my extension got rejected with below message from Magento.

For policy or quality reasons, after evaluating your submission, we have decided not continue our review of MY EXTENSION

Now Magento is not allowing to update and re-submit my extension.

I have checked and found Magento is using its EQP process for checking extensions uploaded to the Marketplace.

Which things I have to take care to make a Magento 2 extension Marketplace ready?

  • 1
    do you have any idea about this "Extensions must be able to install using Composer" ? – inrsaurabh Apr 3 '18 at 4:22
  • That means your module must be able to install using command line. Refer devdocs.magento.com/guides/v2.1/cloud/howtos/… A sample command will look like composer require <component-name>:<version> --no-update – Jaimin Sutariya Apr 3 '18 at 4:52
24

Below are the few things I found which can help to reduce rejection and pass EQP process.

Module Checks:

  1. Keep Your vendor name same as Vendor Name of your Marketplace account
  2. Create your extension with developer mode enabled
  3. Must have composer.json in root folder of extension Eg. app/code/Vendor/Module/composer.json" with correct configurations and dependencies
  4. Must have registration.php in root folder of extension Eg. app/code/Vendor/Module/registration.php"

Code Checks:

  1. Do not use $_REQUEST, $_POST, $_GET, $_FILE directly
  2. Never end class file with ending php tag ?>
  3. Do not use die() or exit() in your code.
  4. Do not use // @codingStandardsIgnoreLine or // @codingStandardsIgnoreFile in code
  5. Remove unnecessary code and comments
  6. Use spaces for indentation
  7. Check for code duplication Refer Use ClassPreferences and/or Magento 2's plugin structure to avoid duplicating code.

  8. Add PHP DockBlock for your classes

  9. Use proper DockBlock for each of your functions with parameters and return types.

  10. It is better to use Service Contract approach for your module development.

Testing and Debugging:

  1. Check extension functionality with Magento compilation php bin/magento setup:di:compile
  2. Check compatibility with production mode enabled
  3. Test with cache enabled and disabled
  4. Validate your package e.g. php validate_m2_package.php my-theme.zip my-module.zip
  5. Check coding standard with phpcs E.g. $ vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10
  6. Do Complete Testing of your code. Execute command bin/magento dev:tests:run More Reference

Content and Description Checks:

  1. Do not use Magento logo in your documents or images
  2. Do not use "Product Box Image" as extension main image
  3. Add proper description for your extension functionality
  4. Correct grammatical errors (punctuation, capitalization, word usage, etc). Remember to use "a","an", and "the" correctly. Make sure words are plural when necessary. Be sure words that should be past tense are past tense.
  5. Check and confirm you do not have any broken link in your document or description content.
  6. Do not add links of other extensions/services in description content. Promoting services or other created extensions in Magento Marketplace or Magento Connect is prohibited.

Other:

  1. Submit an e-copy of your Tax Forms to marketplace@magento.com (Required only if you are selling paid extensions)

Keeping the practice of following above standards will surely improve extension quality.

  • 1
    You answered your own question. So you knew all that and still they rejected you? – Konstantin Gerasimov Aug 8 '17 at 2:38
  • I followed all above and uploaded my another extension. Its still in review phase. If you have any other suggestion, please add it as an answer. @Goivvy.com – Jaimin Sutariya Aug 8 '17 at 3:46
  • if there any way where we can check our module by any automation cron or online before submitting ? – Aditya Shah Oct 12 '18 at 17:57
  • 1
    Hello, @aditya. I dont think you will require cron to validate your module because you do not need to check it again and again on intervals. For an online tool, I am not sure if there is any online tool which will completely validate your package but you can check customerparadigm.com/magento-development/… and a tool we develop in one of my previous company github.com/mconnectmedia/… – Jaimin Sutariya Oct 13 '18 at 7:19
  • 1
    Hello @SanjayGohil, I think it will not approve your extension. But you can give it a try. – Jaimin Sutariya Dec 31 '18 at 6:45
9
+100

There are many steps to approve our extension to the marketplace. I wait approx 1 month to approve my extension to marketplace and today finally it's approved.

For every failure of review from marketplace they provide specific reason for failure review.

So here is the list of failure which I face at the time of review

1) If you do not submit code within 1 month of the Approved from Business Review date we will assume the product has been abandoned and thus will reject it after 1 month.

2) For policy or quality reasons, after evaluating your submission, we have decided not continue our review of FAQ. Here is a summary of the reasons for our decision:

Tech: Code quality issues:

Installation: This extension did not pass the Marketplace EQP installation test. Extensions are required to install successfully when compiled and run in production mode. You can find instructions on command line configuration, setting the Magento mode to "Production", and compiling your code in the developer guide available at: http://devdocs.magento.com/guides/v2.1/config-guide/cli/config-cli.html Once the code supports compilation and execution in production mode, please re-upload your package.

3) Please note that due to the number of extensions in our queue (1000+) we are experiencing some delays in our Extension Quality Program. We estimate that it could take up to 90 days to review your extension. In order to ensure that your extensions is approved quickly please consider the following:

Verify that your extension code and marketing content is up to Marketplace standards with the following tools:

Marketing Content Guidelines

Package validation EQP Tool verification Join our partner program (partner extensions will receive priority) Respond quickly to any requests for changes

4) We want to let you know that your submission has been rejected from review. In order for us to be able to approve your submission, please resubmit with the following corrections per our guidelines:

Company Logo: Add a Company Logo to your profile (company or personal). It must look professional; however, it does not necessarily need to be a picture of you. It should be 255 x 255 px, jpg, gif or png.

Long Description: Each extension should have an opening paragraph that describes the product (give a summary) not just a list of

features. This description should describe the product features, as well as, how the product functions, so that the consumer will have all basic questions answered about the product and/or related service.

Company Bio: Add a short bio to your profile to help merchants better understand you or your company.

Company Name: Update your Company Name to represent you or your company. The Company Name cannot infer that Magento is affiliated with

your company or extension.

List Features: Please list the features vertically with bullet points. Use the WYSIWYG editor. Highlight the features and click the

bullet point icon. This makes the description much easier to follow

Additional Comments:
*********TRADEMARK VIOLATION: Remove the Magento Logo from the extension icon and screenshot.******

*********TRADEMARK VIOLATION: The current Company URL must be changed.******

5) We want to let you know that your submission has been rejected from review. In order for us to be able to approve your submission, please resubmit with the following corrections per our guidelines:

Trademark Violations: You may not use the Magento name in your extension, your extension icon, your domain name, your website username or screen name, your email address, your email’s domain, or in your own branding that it may create any inference to Magento's affiliation with your company or extension.

Additional Comments: *******Remove "Magento 2" from the extension icon *****

*******Remove "Magento 2" from each mention of the extension title in the short and long descriptions.*****

*******use only the default font in the long description.*****

*******Add more detail to the opening paragraph in the long description (before the list of features) that describes the product. Make it clear what the extension can do for the customer, how the extension works, and give detailed features for the extension. You may want to give examples of cases when the extension might be used. Leave the merchant with a solid understanding of how their site will appear and function if they purchase your extension. *******

6) We have great news! Your submission, FAQ, has completed our technical and marketing review process.

At last many review processes they approve my extension and it's live now on marketplace.

https://marketplace.magento.com/prince-module-faq.html

  • What did you do when you got message "we have decided not continue our review of FAQ"? Because after we got this mail, we are not able to update our extension for review again. – Jaimin Sutariya Aug 10 '17 at 8:26
  • You can email to marketplace@magento.com for any queries. I contact marketplace for my queries about extension review by this email. – Prince Patel Aug 10 '17 at 8:35
  • Most welcome, Happy to help :) – Prince Patel Aug 10 '17 at 8:41
  • @Prince Patel, I am getting below error in review, composer require vendor/magento2-xxxx:1.0.0' Installation issue: Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - The requested package vendor/magento2-xxxx could not be found in any version, there may be a typo in the package name. Environment: Operating System - Centos 7, PHP Version - 7.0.23, Magento Platform - 2.0.16 CE – Pushpendra Singh Oct 9 '17 at 12:18
  • 1
    @Pawan Vendor name must be same as vendor name in account information of Magento developer's account. You can find it from developer.magento.com/account/profile ->Marketplace Profile->Vendor Name. In my case both names are same. – Prince Patel Dec 13 '18 at 5:25
2

Addition to your points, need to do the functional testing of the extension with various Community and Enterprise Magento versions also. Since, in EQP, the manual functional testing of the extension also added as a step(QA Review) and the extensions are rejected in this phase also.

1

Here is a good summary on the official blog 4 Things You Need to Know to Sell Extensions on Magento Marketplace

Core resources:

  1. Magento Marketplace Tools script on GitHub
  2. Extension Quality Program set of rules and sniffs for PHP_CodeSniffer tool.
  3. Technical guide

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.