These slides are about how to submit extension in the marketplace It is covering Technical Review and Marketing Review of Magento 2 extension submission.
The technical review contains two parts, code validate through predefined tools and another is Manual QA
5. #MM19IN
Reasons to Sell Package on Marketplace
Centralized space to manage your products
Magento users trust marketplace and plugins themes listed on that
By being on marketplace you increase brand’s value and its credibility
6. #MM19IN
Enter into Marketplace
• To submit an extension to Marketplace, you have to
be a registered user. So, first, go
to marketplace.Magento.com and create an account.
• Once you finished the registration, you can move on
to a package submission.
10. #MM19IN
Code Review using Tools
Verify Package for Required Files
Coding Standards: Check Code Quality/Syntax
Installation (M2 only): Verify that Product
Installs Correctly
11. #MM19IN
Intellectual Property: Check for Plagiarism
Page Caching (M2 only): Verify that Varnish
Works Correctly
Code Review using Tools
12. #MM19IN
Advantage of Code Review using Tools
Minimize back and forth process for
submission of extension to the
marketplace
13. #MM19IN
The validation tool to test the package before it is
submitted to Magento Marketplace.
To download the tool, see the Marketplace Tools GitHub
repository.
Verify Package for Required Files
16. #MM19IN
silent on success unless the debug option is set
ERROR - "<zip file name>": Error message.
Errors must be fixed, warnings and notes are purely
informational.
Can fix any warnings or notes but is not required
to.
Verify Package for Required Files
18. #MM19IN
EQP – Extension Quality Program - a set of rules
and sniffs for PHP_CodeSniffer
Automatically check your code against some of the
common Magento and PHP coding issues
Coding Standards: Check Code
Quality/Syntax
19. #MM19IN
• raw SQL queries;
Example : SELECT * from catalog_entity;
• Direct class instantiation;
Example : $className =
MagentoCatalogModelProduct;
Coding Standards: Check Code
Quality/Syntax
20. #MM19IN
• use of PHP superglobals;
Example: '$_GET', '$_POST', '$_SESSION',
'$_REQUEST', '$_ENV', '$_FILES‘
• use of dangerous functions
Example: eval()
many more …
Coding Standards: Check Code
Quality/Syntax
23. #MM19IN
Coding Standards: Check Code Quality/Syntax
TYPE SEVERITY DESCRIPTION MUST BE
RESOLVED?
Examples - NOT TO BE
USED IN CODE
Error 10 A critical error with
severity level 10
Yes
• The opening PHP
tag must be the first
• Namespace not
specified
• Use of goto
• Use of exit and
echo
• Use of Super
globals
• Closing tag should
not there
• Use of eval()
24. #MM19IN
Coding Standards: Check Code Quality/Syntax
TYPE SEVERITY DESCRIPTION MUST BE
RESOLVED?
Examples - NOT TO
BE USED IN CODE
Warning
8 A severity level 8
warning
Developers are
encouraged
to solve
• Long array syntax
• Direct Object
instantiation
• Direct throw of
exception
• Use of + operator
to concate two
string
• Nesting level of
function exceeds
5, refactor
function
• Use the global
keyword
25. #MM19IN
Coding Standards: Check Code Quality/Syntax
TYPE SEVERITY DESCRIPTION MUST BE
RESOLVED?
Examples NOT TO BE
USED IN CODE
Warning 6 A severity level 6
warning
Developers are
encouraged to
solve
• Unused Function
Parameter
• Useless Overriding
Method
• Commenting Todo
Comment Found
• Empty Block
Detected ELSE
• Files Line Length
Max Exceeded
• Function Call
Argument Spacing
• Disallow Short Open
Tag
26. #MM19IN
• Magento Marketplace Technical Review run phpcs
command with
--severity=10 option.
• Example
$ vendor/bin/phpcs /path/to/your/extension --
standard=MEQP2 --severity=10 --extensions=php,phtml
Coding Standards: Check Code
Quality/Syntax
28. #MM19IN
• Extension code contains source code from the Magento
CE of Magento 1.x or 2.x platforms, the extension must
be licensed under Open Source License v. 3.0
• Properly credit to Magento Commerce.
Plagiarism
29. #MM19IN
• Installs with Composer,
• Compiles without errors using the following command:
deploy:mode:set production
• Works with each version of Magento that is shown as supported in the
extension product profile.
• Works with each version of PHP that is supported by the Magento
version that is shown as supported in the extension product profile.
Quality Assurance : Pass Manual QA
30. #MM19IN
• Has all functionality that is described in the extension documentation.
• Does not crash with unhandled errors.
• Does not hang when invalid data is submitted.
Quality Assurance : Pass Manual QA
31. #MM19IN
• Varnish Test The Production Installation Test (see above)
will be done on Magento 2 with Varnish cache
• Any unexpected cache misses will be considered a failure
• cacheable= false must not be used within the blocks
where core Magento is caching the blocks
https://devdocs.Magento.com/guides/v2.2/config-
guide/varnish/config-varnish.html
Varnish Testing
32. #MM19IN
• Place store in Developer Mode
• Inspect the page headers in your browsers debug network
tab.
• Look forX-Magento-Cache-Debug: MISS
• Refresh the page, it should change to HIT
Recommended to check for Product detail page ,
customer account pages etc
Varnish Testing
33. #MM19IN
When we add cachable="false"
X-Magento-Cache-Debug:MISS
X-Magento-Cache-Control:max-age=0, must-revalidate, no-cache, no-
store
Age: 0
When we remove cacheable="false"
X-Magento-Cache-Control:max-age=86400, public, s-maxage=86400
X-Magento-Cache-Debug:HIT X-Magento-Cache-Hits:1
Age:32
Varnish Testing
35. #MM19IN
Marketing Review
Spell-check all text fields and product documentation
Pricing: Complete pricing information
Content: Complete brief & detailed description
Branding: Follow Magento brand and logo guidelines
36. #MM19IN
Marketing Review
• Your product must have a professional presentation with
clear descriptions, images, and screenshots.
• The product name should indicate the purpose of the
extension or theme.
• The product description should be well-written, and provide
an overview of the features and benefits.
• Use only high-quality screenshots, images, and video to
accompany the listing.
37. #MM19IN
Contribution Program for EQP
Please feel free to contribute new sniffs or
any fixes or improvements for the existing ones.
Store that brings together merchants and qualified developers of Magento solutions.
After Magento closed their Connect, Marketplace became the only platform for selling both Magento 1 and Magento 2 extensions.
Store that brings together merchants and qualified developers of Magento solutions.
After Magento closed their Connect, Marketplace became the only platform for selling both Magento 1 and Magento 2 extensions.
Marketplace will ask you to provide some basic information, such as your company type and your role (a merchant or a developer).
Marketplace will ask you to provide some basic information, such as your company type and your role (a merchant or a developer).
The tool is silent on success unless the debug option is set. If the tool finds any errors it will report them in the following format to make the errors searchable:
ERROR - "<zip file name>": Error message.
Errors must be fixed, warnings and notes are purely informational. The user can fix any warnings or notes but is not required to.
The tool is silent on success unless the debug option is set. If the tool finds any errors it will report them in the following format to make the errors searchable:
ERROR - "<zip file name>": Error message.
Errors must be fixed, warnings and notes are purely informational. The user can fix any warnings or notes but is not required to.
Everyone has their own style of writing code and there’s always a debate which one’s is the correct one or which one’s makes the most sense. For that reason rules are brought that need to be followed that define code standards and enhance source code readability.Code sniffer is a standard or set of rules that applies to source code. It automatically checks for code against some of the common coding issues, irregularities, inconsistencies, errors and identifies them… things like:
All severity 10 errors must be fixed in order to successfully pass Level 1 CodeSniffer checks.
During technical review, all submissions are checked to ensure that the code meets Magento standards.
All severity 10 errors must be fixed in order to successfully pass Level 1 CodeSniffer checks.
During technical review, all submissions are checked to ensure that the code meets Magento standards.
All severity 10 errors must be fixed in order to successfully pass Level 1 CodeSniffer checks.
During technical review, all submissions are checked to ensure that the code meets Magento standards.
All severity 10 errors must be fixed in order to successfully pass Level 1 CodeSniffer checks.
All severity 10 errors must be fixed in order to successfully pass Level 1 CodeSniffer checks.
https://github.com/Magento/marketplace-eqp/blob/master/MEQP2/ruleset.xml
This check verifies that the extension installs without error, is configurable (as applicable), and operates as expected. To pass Manual QA, the extension must meet the following requirements:
This check verifies that the extension installs without error, is configurable (as applicable), and operates as expected. To pass Manual QA, the extension must meet the following requirements:
This check verifies that the extension installs without error, is configurable (as applicable), and operates as expected. To pass Manual QA, the extension must meet the following requirements:
Extensions that fail this step will be notified accordingly and will be suspended from Marketplace unless they promptly deliver any fixes required.
Extensions that fail this step will be notified accordingly and will be suspended from Marketplace unless they promptly deliver any fixes required.
devdocs.Magento.com/guides/v2.0/config-guide/varnish/config-varnish.html
Extensions that fail this step will be notified accordingly and will be suspended from Marketplace unless they promptly deliver any fixes required.
When you have completed the code you can submit your extension for technical and/or marketing review. The extension is placed in a queue as soon as it is submitted. You will receive confirmation by email, and can track the status of your submission from your Marketplace account.
Before submitting an extension or theme for marketing review, conduct your own internal review of the content to make sure that it is ready for publication. Here are a few suggestions:
Your product must have a professional presentation with clear descriptions, images, and screenshots.
The product name should indicate the purpose of the extension or theme.
The product description should be well-written, and provide an overview of the features and benefits.
Use only high-quality screenshots, images, and video to accompany the listing.