### Clone and Start ADP Devsite for Local Development Source: https://github.com/adobedocs/commerce-marketplace/blob/main/README.md Clones the ADP Devsite repository, installs its dependencies, and starts the development server. This is one of the three servers required for local development setup. ```bash git clone https://github.com/AdobeDocs/adp-devsite cd adp-devsite npm install npm run dev ``` -------------------------------- ### Clone and Start Devsite Runtime Connector for Local Development Source: https://github.com/adobedocs/commerce-marketplace/blob/main/README.md Clones the Devsite Runtime Connector repository, installs its dependencies, and starts the development server. This is the third server needed for a complete local development environment. ```bash git clone https://github.com/aemsites/devsite-runtime-connector cd devsite-runtime-connector npm install npm run dev ``` -------------------------------- ### Start Content Server for Local Development Source: https://github.com/adobedocs/commerce-marketplace/blob/main/README.md Starts the content server for local development of the Adobe Commerce Marketplace documentation. This command assumes you have Node.js and npm installed. ```bash npm run dev ``` -------------------------------- ### Filter and Sort Themes with cURL Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/filtering.md This example demonstrates filtering theme packages by type and sorting them by platform (ascending) and creation date (descending) using `curl`. It includes authorization headers and the target API endpoint. ```Bash curl -X GET \ -H 'Authorization: Bearer baGXoStRuR9VCDFQGZNzgNqbqu5WUwlr.cAxZJ9m22Le7' \ https://commercedeveloper-sandbox-api.adobe.com/rest/v1/products/packages?type=theme&sort=+platform,-created_at ``` -------------------------------- ### Paginate Batch Requests with Offset and Limit Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/filtering.md Use `offset` and `limit` query parameters to retrieve a subset of records from batch GET requests. `offset` specifies the starting record index (0-based), and `limit` defines the number of records to return. A `limit` of -1 returns all remaining records. The response includes a `X-Total-Count` header indicating the total number of available records. ```HTTP GET /rest/v1/products/packages/?offset=10&limit=5 ``` -------------------------------- ### Documentation Artifacts - Installation Manual Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/packages.md Specifies the file upload ID for the installation manual PDF. ```APIDOC ## POST /packages/{packageId}/artifacts/documentation ### Description Associates the installation manual PDF with the package using its file upload ID. ### Method POST ### Endpoint `/packages/{packageId}/artifacts/documentation` ### Parameters #### Request Body - **documentation_artifacts.installation.file_upload_id** (string) - Required - The unique file upload ID of the installation manual PDF. ### Request Example { "documentation_artifacts": { "installation": { "file_upload_id": "5c644daf21fee4.39102137.2" } } } ### Response #### Success Response (200) - **documentation_artifacts.installation.file_upload_id** (string) - The file upload ID of the installation manual. #### Response Example { "documentation_artifacts": { "installation": { "file_upload_id": "5c644daf21fee4.39102137.2" } } } ``` -------------------------------- ### Overview of Resources Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/rest-api.md This section provides a summary of the available resources within the Marketplace EQP API and their general purpose. ```APIDOC ## Overview of Resources This API provides access to the following resources: ### Resources | Resource | Purpose | |----------------|---------| | authentication | Obtain a session token | | users | Manage your profile | | files | Manage your profile avatar, ZIP files, image files, PDF documents | | packages | Initiate and manage your submissions | | test results | Receive information about automated and manual reviews | | reports | Get information about your sales, as well as your Commerce Marketplace web pages | | API callbacks | Request notification as specific workflow activities happen | ``` -------------------------------- ### Filter Batch Requests by Submission ID Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/filtering.md Filter batch GET requests by specific fields, such as `submission_id`. This allows you to retrieve a list containing only the items that match the specified criteria. For example, filtering by `submission_id=12345` returns a list with at most one package. ```HTTP GET /rest/v1/products/packages/?submission_id=12345 ``` -------------------------------- ### Get Submission Status Summary - CURL and JSON Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/test-results.md Example of how to request a summary report of the review process for a specific submission ID using CURL and the corresponding JSON response. ```curl curl -X GET \ -H 'Authorization: Bearer baGXoStRuR9VCDFQGZNzgNqbqu5WUwlr.cAxZJ9m22Le7' \ https://commercedeveloper-sandbox-api.adobe.com/rest/v1/products/packages/f4eacd72be/status ``` ```json [ { "tool_run_id": "5", "name": "phpcpd", "status": "pass", "date": "2020-01-07 18:43:32" }, { "tool_run_id": "5", "name": "phpcs", "status": "pass", "date": "2020-01-07 18:52:25" }, { "tool_run_id": "5", "name": "varnish", "status": "pass", "date": "2020-01-07 18:45:03" }, { "tool_run_id": "6", "name": "marketing", "status": "fail", "date": "2020-01-08 16:57:55" } ] ``` -------------------------------- ### Generate Fixtures for Varnish Test Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/sellers/installation-and-varnish-tests.md This command uses the Magento CLI to generate sample product data required for running the Varnish performance test. It requires a profile XML file to define the data generation parameters. ```bash magento setup:performance:generate-fixtures ./varnish-config/profile.xml ``` -------------------------------- ### Submit Extension Package for Review Source: https://context7.com/adobedocs/commerce-marketplace/llms.txt Submits a new extension package for technical and marketing review. This process requires comprehensive metadata, including technical and marketing actions, extension type, platform, version compatibility, name, descriptions, version number, artifact references (like `file_upload_id` for the main artifact, documentation, and media), categories, pricing model, and license type. ```bash curl -X POST \ -H 'Authorization: Bearer baGXoStRuR9VCDFQGZNzgNqbqu5WUwlr.cAxZJ9m22Le7' \ -H 'Content-Type: application/json' \ -d '[{ "action": { "technical": "submit", "marketing": "submit" }, "type": "extension", "platform": "M2", "version_compatibility": [ {"edition": "CE", "versions": ["2.3", "2.4"]}, {"edition": "EE", "versions": ["2.3", "2.4"]}, {"edition": "ECE", "versions": ["2.3", "2.4"]} ], "name": "One Click Checkout", "long_description": "
Streamline your checkout process...
", "release_notes": "Version 1.1.5 includes bug fixes...
", "version": "1.1.5", "artifact": { "file_upload_id": "5c11e656057b42.97931218.5" }, "documentation_artifacts": { "user": {"file_upload_id": "5c644d97bb7c41.37505716.6"} }, "media_artifacts": { "icon_image": {"file_upload_id": "5c129cd41ba478.65767699.1"}, "gallery_images": [ {"file_upload_id": "5c644fa344e5d7.04253635.8"} ], "video_urls": ["https://www.youtube.com/watch?v=example"] }, "categories": ["//Extensions//Payments & Security//Checkout Enhancements"], "pricing_model": {"pricing_type": "one-time", "payment_period": 1}, "prices": [ {"edition": "CE", "currency_code": "USD", "price": 15.50}, {"edition": "EE", "currency_code": "USD", "price": 45.00} ], "license_type": "mit" }]' \ https://commercedeveloper-sandbox-api.adobe.com/rest/v1/products/packages ``` -------------------------------- ### JSON Structure for Package Prices Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/packages.md Illustrates the JSON structure for defining package prices, including edition, currency, base price, and installation price. This structure is used for GET, POST, and PUT HTTP commands. ```json "prices" : [ { "edition" : "CE", "currency_code" : "USD", "price" : 15.50 }, { "edition" : "EE", "currency_code" : "USD", "price" : 45.00, "installation_price" : 0.00 }, { "edition" : "ECE", "currency_code" : "USD", "price" : 60.00, "installation_price" : 0.00 } ] ``` -------------------------------- ### Varnish Test Fixture Profile Configuration Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/sellers/installation-and-varnish-tests.md This XML file defines the configuration for generating test fixtures, including the number of admin users, websites, store groups, store views, simple products, and categories. It also specifies configuration settings like the admin security use form key and the full page cache caching application. ```xmlStreamline your checkout process...
", "release_notes": "Version 1.1.5 includes bug fixes...
", "version": "1.1.5", "artifact": { "file_upload_id": "5c11e656057b42.97931218.5" }, "documentation_artifacts": { "user": {"file_upload_id": "5c644d97bb7c41.37505716.6"} }, "media_artifacts": { "icon_image": {"file_upload_id": "5c129cd41ba478.65767699.1"}, "gallery_images": [ {"file_upload_id": "5c644fa344e5d7.04253635.8"} ], "video_urls": ["https://www.youtube.com/watch?v=example"] }, "categories": ["//Extensions//Payments & Security//Checkout Enhancements"], "pricing_model": {"pricing_type": "one-time", "payment_period": 1}, "prices": [ {"edition": "CE", "currency_code": "USD", "price": 15.50}, {"edition": "EE", "currency_code": "USD", "price": 45.00} ], "license_type": "mit" } ] ``` ### Response #### Success Response (200) - **code** (integer) - The HTTP status code. - **message** (string) - A success message. - **submission_id** (string) - The unique identifier for the submission. - **eqp_status** (object) - The status of the extension package review. - **overall** (string) - The overall review status. - **technical** (string) - The technical review status. - **marketing** (string) - The marketing review status. #### Response Example ```json [ { "code": 200, "message": "Success", "submission_id": "f4eacd72be", "eqp_status": { "overall": "in_progress", "technical": "in_automation", "marketing": "awaiting_marketing_review" } } ] ``` ``` -------------------------------- ### Get Test Review Status - Bash Source: https://context7.com/adobedocs/commerce-marketplace/llms.txt Monitor the progress of technical and marketing reviews for a package submission. Retrieve detailed test reports for code sniffer, Varnish, and manual QA tests. This includes getting a summary of all test results or detailed reports for specific tests like PHPCS or marketing reviews. ```bash # Get summary of all test results for a submission curl -X GET \ -H 'Authorization: Bearer baGXoStRuR9VCDFQGZNzgNqbqu5WUwlr.cAxZJ9m22Le7' \ https://commercedeveloper-sandbox-api.adobe.com/rest/v1/products/packages/f4eacd72be/status # Response: # [ # {"tool_run_id": "5", "name": "phpcs", "status": "pass", "date": "2020-01-07 18:52:25"}, # {"tool_run_id": "5", "name": "varnish", "status": "pass", "date": "2020-01-07 18:45:03"}, # {"tool_run_id": "6", "name": "marketing", "status": "fail", "date": "2020-01-08 16:57:55"} # ] # Get detailed PHPCS code sniffer report curl -X GET \ -H 'Authorization: Bearer baGXoStRuR9VCDFQGZNzgNqbqu5WUwlr.cAxZJ9m22Le7' \ https://commercedeveloper-sandbox-api.adobe.com/rest/v1/f4eacd72be/status/phpcs/5 # Response includes detailed error locations: # { # "tool": "phpcs", # "status": "FAIL", # "reports": [{ # "php_version": "7.1.16", # "details": { # "totals": {"errors": 1, "warnings": 0}, # "files": { # "/path/to/file.php": { # "messages": [{ # "message": "Error description", # "line": 3, # "type": "ERROR" # }] # } # } # } # }] # } # Get marketing review failure details curl -X GET \ -H 'Authorization: Bearer baGXoStRuR9VCDFQGZNzgNqbqu5WUwlr.cAxZJ9m22Le7' \ https://commercedeveloper-sandbox-api.adobe.com/rest/v1/f4eacd72be/status/marketing/6 ``` -------------------------------- ### Configure Varnish Cache Header in VCL Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/sellers/installation-and-varnish-tests.md This snippet modifies the Varnish Configuration Language (VCL) to set the 'X-EQP-Cache' HTTP header based on Varnish cache status (HIT or MISS). It's essential for the Varnish test to verify cache functionality. ```vcl sub vcl_deliver { if (resp.http.x-varnish ~ " ") { set resp.http.X-EQP-Cache = "HIT"; } else { set resp.http.X-EQP-Cache = "MISS"; } ... } ``` -------------------------------- ### GET /rest/v1/products/packages/items/:item_id Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/packages.md Retrieves package details by specifying a user-defined unique item_id. ```APIDOC ## GET /rest/v1/products/packages/items/:item_id ### Description Retrieves package details by specifying a user-defined unique item_id. ### Method GET ### Endpoint /rest/v1/products/packages/items/:item_id ### Parameters #### Path Parameters - **item_id** (string) - Required - The user-defined unique item identifier. ### Response #### Success Response (200) - **package_details** (object) - An object containing the details of the specified package item. - **item_id** (string) - The user-defined unique item identifier. - **submission_id** (string) - The unique identifier for the package submission. - **sku** (string) - The Stock Keeping Unit (SKU) of the package. - **version** (string) - The version number of the package. #### Response Example ```json { "package_details": { "item_id": "item_abcde", "submission_id": "sub_12345", "sku": "MY-SKU-001", "version": "1.0.0" } } ``` ``` -------------------------------- ### Documentation Artifacts Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/packages.md Manages documentation artifacts for a package, including user, installation, and reference manuals. ```APIDOC ## POST /packages/{packageId} ### Description Uploads or updates documentation artifacts for a package, such as user, installation, and reference manuals. ### Method POST ### Endpoint `/packages/{packageId}` ### Parameters #### Request Body - **documentation_artifacts** (object) - Optional - Contains file upload IDs for documentation manuals. - **user** (object) - User manual details. - **file_upload_id** (string) - Required - The unique file upload ID for the user manual (obtained from Files API). - **installation** (object) - Installation manual details. - **file_upload_id** (string) - Required - The unique file upload ID for the installation manual (obtained from Files API). - **reference** (object) - Reference manual details. - **file_upload_id** (string) - Required - The unique file upload ID for the reference manual (obtained from Files API). ### Request Example { "documentation_artifacts": { "user": { "file_upload_id": "5c644d97bb7c41.37505716.6" }, "installation": { "file_upload_id": "5c644daf21fee4.39102137.2" }, "reference": { "file_upload_id": "5c644f4dcb1900.18508194.9" } } } ### Response #### Success Response (200) - **documentation_artifacts** (object) - The details of the uploaded documentation artifacts. #### Response Example { "documentation_artifacts": { "user": { "file_upload_id": "5c644d97bb7c41.37505716.6" }, "installation": { "file_upload_id": "5c644daf21fee4.39102137.2" }, "reference": { "file_upload_id": "5c644f4dcb1900.18508194.9" } } } ``` -------------------------------- ### Batch Processing Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/rest-api.md Information on how to perform batch operations with the Marketplace EQP API, including request formats and response structures for both complete failures and typical processing. ```APIDOC ## Batch Processing Some endpoints can handle a **batch request**, such as the following: ```html POST /rest/v1/products/packages PUT /rest/v1/products/packages // used when updating multiple packages in one request ``` ### Batch Response Endpoints that are batch requests return responses as follows. See specific examples in the section about [handling errors](handling-errors.md). #### Complete Processing Failure - If an error occurs with the entire payload (for example, the user is not authorized to make the request) the appropriate HTTP 4xx code will be returned. - No additional processing of the batch request was attempted, and therefore there will **not** be any itemized response. #### Typical Processing - If the batch request can be processed, the overall HTTP code of the batch response will always be **HTTP 200 OK** regardless of the pass/fail status of the items in the batch. - The batch response contains information about every item in the batch request. - The order of these items matches the order in the batch request. - Every item in the batch response includes two additional fields that indicate the pass/fail status of the operation on that item: - **code** - Contains an integer status code related to the operation. Failure of an operation is indicated by a non-200 value - **message** - Contains a human readable message that describes the reason for the code. - Items in a batch that can be completed successfully will be completed, regardless of the pass/fail status of other items in the batch. ``` -------------------------------- ### Package Type API Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/packages.md Manages the type of a package. Supports GET, POST, and PUT operations. ```APIDOC ## GET /adobedocs/commerce-marketplace/type ### Description Retrieves the type of a package. ### Method GET ### Endpoint /adobedocs/commerce-marketplace/type ### Parameters #### Query Parameters - **package_id** (string) - Optional - The ID of the package to retrieve the type for. ### Response #### Success Response (200) - **type** (string) - The type of the package (extension, theme, shared_package, all). #### Response Example ```json { "type": "extension" } ``` ## POST /adobedocs/commerce-marketplace/type ### Description Sets the type for a package. ### Method POST ### Endpoint /adobedocs/commerce-marketplace/type ### Parameters #### Request Body - **package_id** (string) - Required - The ID of the package. - **type** (string) - Required - The type of the package (extension, theme, shared_package, all). ### Request Example ```json { "package_id": "pkg_456", "type": "theme" } ``` ### Response #### Success Response (201 Created) - **message** (string) - Confirmation message. #### Response Example ```json { "message": "Package type set successfully." } ``` ## PUT /adobedocs/commerce-marketplace/type ### Description Updates the type of a package. ### Method PUT ### Endpoint /adobedocs/commerce-marketplace/type ### Parameters #### Request Body - **package_id** (string) - Required - The ID of the package. - **type** (string) - Required - The new type of the package (extension, theme, shared_package, all). ### Request Example ```json { "package_id": "pkg_456", "type": "shared_package" } ``` ### Response #### Success Response (200 OK) - **message** (string) - Confirmation message. #### Response Example ```json { "message": "Package type updated successfully." } ``` ``` -------------------------------- ### Update Package Request Example (Bash) Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/packages.md This bash script demonstrates how to send a PUT request to update a package in the Commerce Marketplace API. It includes the necessary Authorization header, Content-Type, and a JSON payload specifying the action to be performed on the package identified by its submission ID. ```bash curl -X PUT \ -H 'Authorization: Bearer baGXoStRuR9VCDFQGZNzgNqbqu5WUwlr.cAxZJ9m22Le7' \ -H 'Content-Type: application/json' \ -d '{ "action" : { "marketing" : "submit"} }' \ https://commercedeveloper-sandbox-api.adobe.com/rest/v1/products/packages/f4eacd72be ``` -------------------------------- ### GET /rest/v1/products/packages/skus/:url_encoded_sku Source: https://github.com/adobedocs/commerce-marketplace/blob/main/src/pages/guides/eqp/v1/packages.md Retrieves all versions of a particular package SKU. The SKU must be URL-encoded. ```APIDOC ## GET /rest/v1/products/packages/skus/:url_encoded_sku ### Description Retrieves all versions of a particular package SKU. The SKU must be URL-encoded. ### Method GET ### Endpoint /rest/v1/products/packages/skus/:url_encoded_sku ### Parameters #### Path Parameters - **url_encoded_sku** (string) - Required - The URL-encoded Stock Keeping Unit (SKU) of the package. ### Response #### Success Response (200) - **versions** (array) - An array of version strings for the specified package SKU. #### Response Example ```json { "versions": [ "1.0.0", "1.1.0" ] } ``` ```