docs/woo-marketplace/product-update-guidelines.md
To maintain a high-quality and competitive Marketplace, we encourage all vendors to regularly update their products. Consistent updates ensure compatibility with the latest versions of WooCommerce and WordPress, improve security and performance, and deliver ongoing value to customers.
v2.1.0 for features, v3.0.0 for breaking changes.Products that fail to stay current with WooCommerce core and/or those that are not updated at least once every six months will be flagged for removal from the WooCommerce Marketplace.
Before uploading a new version of your extension, it is important to ensure that it passes all QIT quality standards. You can run these checks from your vendor dashboard by clicking the Quality Insights menu option.
Learn more about QIT tests and how to run them.
You can upload the updated version after your extension passes all QIT checks.
Click the Versions tab. You'll see all the versions you've previously uploaded, including highlights about what was in each version.
Click the Add version button, then:
Once submitted, we will run the following tests on the uploaded file:
All vendor admins will receive email notifications throughout the process, including:
Activation, security, and malware test passes are required for a new product version to be deployed.
Learn more about changelog formatting and entry types.
If an upload fails, there are a few common errors you should check first:
changelog.txt must be present to serve as a record of what's changed from version to version.changelog.txt file provided does not match the expected format.changelog.txt do not match.The results from the automated tests will be in the Submission Tests table, which can be viewed by clicking the associated View link as shown in the image below:
To deploy an extension programmatically, it must be an extension update and not a new submission. This method serves as an alternative to logging into the vendor dashboard and using the user interface (UI) to perform the same action.
:::note For extra security, this application password is scoped to the deploy endpoint and cannot be used to perform any other action on the user's behalf. :::
Make a POST request to deploy your product using the following command:
curl -X POST https://woocommerce.com/wp-json/wc/submission/runner/v1/product/deploy \
-F "file=@/path/to/zip" \
-F "product_id=<product_id>" \
-F "username=<username>" \
-F "password=<app_password>" \
-F "version=<product_version>"
Replace <product_id>, <username>, <app_password>, and <product_version> with your actual product ID, username, application password, and product version, respectively.
To check the status of your deployment, use the following command:
curl -X POST https://woocommerce.com/wp-json/wc/submission/runner/v1/product/deploy/status \
-F "product_id=<product_id>" \
-F "username=<username>" \
-F "password=<app_password>"
When you query the deployment status, the response will provide details about the progress, including the status of various test runs.
Below is an example of this response:
{
"status": "queued",
"version": "1.0.0",
"test_runs": {
"12345": {
"test_run_id": "12345",
"status": "success",
"test_type": "activation",
"result_url": "https://qit.woo.com/?qit_results=12345"
},
"67890": {
"test_run_id": "67890",
"status": "success",
"test_type": "api",
"result_url": "https://qit.woo.com/?qit_results=67890"
}
}
}
Note: Additional test run objects may be present in the response, one for each test type that was executed.
We strongly encourage contributing E2E tests for your extensions built on top of the QIT's custom E2E testing framework. By sharing these tests with us, you play a crucial role in ensuring true compatibility across different WordPress and WooCommerce versions, various PHP environments, and alongside other popular extensions.
Our custom E2E testing framework — equipped with a Dockerized development environment and simple-to-use command tools — empowers you to design and execute comprehensive tests using Playwright that are tailored to your extension's unique functionalities.
Not only does this initiative help mitigate potential compatibility issues before they affect users, but it also enhances the overall reliability of the products within our marketplace. Participating in this process not only contributes to a robust ecosystem but also elevates your extension's reputation for quality and reliability.
Review our QIT custom test documentation to begin leveraging the power of custom tests to guarantee your extension works seamlessly in real-world scenarios and stands out in the competitive Marketplace.
Feel free to reach out to the Marketplace team for update planning, QIT help, or deployment issues.
Let's work together to keep the WooCommerce.com Marketplace innovative, secure, and reliable for everyone!