Magento Marketplace has been up and running for a while but I think there is still some confusion out there as to what the different levels of validation actually do and how you can prepare yourself for the submission process. Below my current understanding of the technical aspects of submitting a Magento 2 extension to the Marketplace.

This is the current workflow as of February 2017 for an extension to get up and running on Marketplace:
How does the Marketplace Extension Quality Program (EQP) work

Step 3 - Submit Extension

Upon submitting, your package will be checked against the format that Magento is expecting. You can check your Zip file with this tool (no longer available).

$ validate_m2_package Fooman_Example-1.0.0.zip

Step 5 - Code Standard

This is a base line coding standard test. You can see the rules listed in this github repository. Please note to pass only the severity 10 errors need to be addressed:

$ vendor/bin/phpcs /path/to/your/extension --standard=MEQP2 --severity=10

which are only a few rules.

Step 6 - Installation Production Verification

This is new and from what I am hearing much needed. Essentially Magento will now automatically install the extension into various Magento versions.

This addresses two current problems.

1.) Extensions were not able to be successfully installed in the version they claimed compatibility with. For the current Extension listing the developer only needs to manually pick which extension they target. This is very broad 2.0 or 2.1 and this was not validated.

To make sure you pass this step install your package via composer into Magento 2.0.x or 2.1.x via

$ composer require fooman/example

2.) Current Magento 2 has the ability to surprise you in production mode - see my report here. Essentially a developer can create an extension that works perfectly in developer mode but once production mode is enabled, including the di compilation step it throws a fatal error. From what I have been hearing a lot of extension developers got caught out by this. Myself included a couple of years ago. Since then I have included a new step in our release process to make sure we install into a production mode environment. To make sure you pass you can simply re-enable production mode, which runs all the compiliation steps needed. So $ bin/magento deploy:mode:set developer followed by $ bin/magento deploy:mode:set production

The new check in Magento's process will uncover the above two cases.

Step 9 - Manual QA

If I understood this correctly they will throw some serious resources into ensuring that the extensions listed deliver on what they claim. Magento is really earning their money here.

Not Listed - Level 2 verification

Extensions with the "Top Quality" badge have undergone additional scrutiny after all of the above steps. This is a manual process where a Magento engineer will code review your extension. It starts with being checked against all MEQP2 rules listed from here

$ vendor/bin/phpcs /path/to/your/extension --standard=MEQP2

and continues with feedback on architecture, performance considerations, review of tests and manually QAing that the extension does what it claims as outlined in the user documentation (I am not sure if this is still needed as it now looks to be the same as Step 9 above)

Kristof Ringleff

Kristof Ringleff

Founder and Lead Developer at Fooman

Want to receive our monthly email with the best Magento developer tips, tricks and news? Join 7000+ other Magento developers