eBay Product APIVersion 1.4.0
 

addProducts

Use this call to check the status of products you have previously submitted (with addProducts) for inclusion in the eBay catalog for a given category. addProducts is an asynchronous call. Although you will get an immediate response to indicate whether the call was successful or not, you will need to use this call to determine whether the submission has been approved or rejected. The approval process may take up to 6 hours.

Note: Product creation is supported for a subset of categories on the US (global ID EBAY-US) and UK (global ID EBAY-GB) sites only. Use GetCategoryFeatures in the Trading API to determine which categories support product creation.

See Product Creation for more information about when you should add a product to an eBay catalog, and how to do it.

See also the reference documentation for this call:



Input

See also Samples.

The box below lists all fields that could be included in the call request. To learn more about an individual field or its type, click its name in the box (or scroll down to find it in the table below the box).

<?xml version="1.0" encoding="utf-8"?>
<addProductsRequest xmlns="http://www.ebay.com/marketplace/marketplacecatalog/v1/services">
  <!-- Call-specific Input Fields -->
  <addProductRequest> ProductSubmission (BaseServiceRequest)
    <categoryId> string </categoryId>
    <invocationId> string </invocationId>
    <media> Media
      <mediaIdentifier> MediaIdentifier
        <url> string </url>
      </mediaIdentifier>
      <mediaType> MediaType </mediaType>
    </media>
    <!-- ... more media nodes allowed here ... -->
    <productPropertyValue> PropertyValue
      <propertyName> string </propertyName>
      <value> Value
        <number> NumericValue
          <value> string </value>
        </number>
        <text> StringValue
          <value> string </value>
        </text>
        <URL> URIValue
          <value> anyURI </value>
        </URL>
      </value>
      <!-- ... more value nodes allowed here ... -->
    </productPropertyValue>
    <!-- ... more productPropertyValue nodes allowed here ... -->
  </addProductRequest>
  <!-- ... more addProductRequest values allowed here ... -->
  <clientBatchId> string </clientBatchId>
</addProductsRequest>
Argument Type Occurrence Meaning
addProductRequest ProductSubmission (BaseServiceRequest) Optional,
repeatable: [1..10]
Information about a single product to be added to the eBay catalog. The product information must include a category ID and a set of name-value properties that describe the product.
addProductRequest.categoryId string Required Specifies the category to which you want to add a product. Only select Electronics categories support product creation.
Max length: 10.
addProductRequest.invocationId string Optional A unique identifer for a given product request. Use invocationId to prevent the submission of duplicate data. In the event of a partial failure, the invocation ID can also be used to identify a product request that did not succeed.

If the same invocationId is passed in more than once in the same request, then an error will be returned. The identifier must be a number.
addProductRequest.media Media Optional,
repeatable: [0..10]
Details for any media, such as images, associated with the product. Currently, images are the only supported media type.

When submitting multiple images, the image specified in the first media node will be used as the stock photo for the product.
addProductRequest.media
  .mediaIdentifier
MediaIdentifier Optional A reference to the media for you product. Currently, only URLs are supported. You must specify a media identifier when you include media details for your product.
addProductRequest.media
  .mediaIdentifier.url
string Optional A URL to the media file for your product. You must specify a URL when you include media details for your product.
Max length: 400.
addProductRequest.media
  .mediaType
MediaType Optional The kind of media used to describe your product. Currently, images are the only supported media type. You must specify a media type when you include media details for your product.

Applicable values:

Image
Indicates that the specified media is an image.
addProductRequest
  .productPropertyValue
PropertyValue Required,
repeatable: [1..100]
Name-value pairs that describe the product.

See getProductMetadataBulk for details about required and optional product properties and value constraints..

addProductRequest
  .productPropertyValue
  .propertyName
string Required This is the canonical name of the property. Used to identify a property within a catalog that this category belongs to.
addProductRequest
  .productPropertyValue.value
Value Required,
repeatable: [1..*]
A value for the property.
addProductRequest
  .productPropertyValue.value
  .number
NumericValue Conditional For numeric value type.
addProductRequest
  .productPropertyValue.value
  .number.value
string Conditional A numeric value. For example, physical dimensions of a product, such as height or weight, are specified as nummeric values.
addProductRequest
  .productPropertyValue.value
  .text
StringValue Conditional For string value type.
addProductRequest
  .productPropertyValue.value
  .text.value
string Conditional A string value.
addProductRequest
  .productPropertyValue.value
  .URL
URIValue Conditional For URL value type.
addProductRequest
  .productPropertyValue.value
  .URL.value
anyURI Conditional As part of request, this will be the URL to download media file. As part of response, this will be the URL where the media file is stored on eBay Picture Services (EPS).
Max length: 400.
clientBatchId string Optional Identifier to help users match requests and responses in multi- threaded applications. When provided in the request, the value is returned in the corresponding response.
Max length: 64.



Output

See also Samples.

The box below lists all fields that might be returned in the response. To learn more about an individual field or its type, click its name in the box (or scroll down to find it in the table below the box).

<?xml version="1.0" encoding="utf-8"?>
<addProductsResponse xmlns="http://www.ebay.com/marketplace/marketplacecatalog/v1/services">
  <!-- Call-specific Output Fields -->
  <addProductResponse> AddProductResponse (BaseServiceResponse)
    <ack> AckValue </ack>
    <errorMessage> ErrorMessage
      <error> ErrorData
        <category> ErrorCategory </category>
        <domain> string </domain>
        <errorId> long </errorId>
        <exceptionId> token </exceptionId>
        <message> string </message>
        <parameter name="string"> ErrorParameter (string) </parameter>
        <!-- ... more parameter values allowed here ... -->
        <severity> ErrorSeverity </severity>
        <subdomain> string </subdomain>
      </error>
      <!-- ... more error nodes allowed here ... -->
    </errorMessage>
    <invocationId> string </invocationId>
    <status> ProductSubmissionStatus
      <ePID> string </ePID>
      <!-- ... more ePID values allowed here ... -->
      <productSubmissionId> string </productSubmissionId>
      <statusCode> ProductSubmissionStatusCode </statusCode>
    </status>
    <timestamp> dateTime </timestamp>
    <version> string </version>
  </addProductResponse>
  <!-- ... more addProductResponse values allowed here ... -->
  <clientBatchId> string </clientBatchId>
  <!-- Standard Output Fields -->
  <ack> AckValue </ack>
  <errorMessage> ErrorMessage
    <error> ErrorData
      <category> ErrorCategory </category>
      <domain> string </domain>
      <errorId> long </errorId>
      <exceptionId> token </exceptionId>
      <message> string </message>
      <parameter name="string"> ErrorParameter (string) </parameter>
      <!-- ... more parameter values allowed here ... -->
      <severity> ErrorSeverity </severity>
      <subdomain> string </subdomain>
    </error>
    <!-- ... more error nodes allowed here ... -->
  </errorMessage>
  <timestamp> dateTime </timestamp>
  <version> string </version>
</addProductsResponse>
Return Value Type Occurrence Meaning
Call-specific Output Fields [Jump to standard fields]
addProductResponse AddProductResponse (BaseServiceResponse) Always,
repeatable: [1..*]
Status for an individual product submission.
addProductResponse.ack AckValue Always Indicates whether or not errors or warnings were generated during the processing of the request.

Applicable values:

Failure
The request was processed successfully, but something occurred that may affect your application or the user.
PartialFailure
The request that triggered the error was processed successfully but with some warnings.
Success
The request that triggered the error was not processed successfully. When a serious application-level error occurs, the error is returned instead of the business data.
Warning
The request that triggered the error was processed successfully but with some warnings.

Code so that your app gracefully handles any future changes to this list.
addProductResponse
  .errorMessage
ErrorMessage Conditionally Description of an error or warning that occurred when eBay processed the request. Not returned if the ack value is Success.
addProductResponse
  .errorMessage.error
ErrorData Conditionally,
repeatable: [0..*]
Details about a single error.
addProductResponse
  .errorMessage.error.category
ErrorCategory Conditionally There are three categories of errors: request errors, application errors, and system errors.

Applicable values:

Application
An error occurred due to a problem with the request, with the most likely source being the application sending the request. For example, the request is missing a required data element or it contains an invalid field. The problem must be corrected before the request can be resent. Inspect the error message to find the cause of the problem. If the problem is due to an application error, modify the application and resend the request. If the error is due to invalid data, the source of the data must be corrected before you resend the resend request to eBay.
Request
An error occurred due to a problem with the request, with the most likely source being missing or invalid data in the request. The problem must be corrected before the request can be retried. Inspect the error message to find the cause of the problem. If the problem is a result of end-user data, alert the end-user to the problem and provide the means for them to correct the problem. Once the problem is resolved, resend the request to eBay.
System
Indicates that an error has occurred on the eBay system side. For example, a database or server could be down. Inspect the error message to find the cause of the problem. If the problem is on the eBay side, an application can retry the request as-is a reasonable number of times (eBay recommends twice). If the error persists, contact Developer Technical Support. Once the problem has been resolved, the request may be resent in its original form.

Code so that your app gracefully handles any future changes to this list.
addProductResponse
  .errorMessage.error.domain
string Conditionally Name of the domain in which the error occurred.
domain values:
Marketplace
A business or validation error occurred in the service.
SOA
An exception occurred in the Service Oriented Architecture (SOA) framework.
addProductResponse
  .errorMessage.error.errorId
long Conditionally A unique code that identifies the particular error condition that occurred. Your application can use error codes as identifiers in your customized error-handling algorithms.
addProductResponse
  .errorMessage.error
  .exceptionId
token Conditionally Unique identifier for an exception associated with an error.
addProductResponse
  .errorMessage.error.message
string Conditionally A detailed description of the condition that caused in the error.
addProductResponse
  .errorMessage.error.parameter
ErrorParameter (string) Conditionally,
repeatable: [0..*]
Various warning and error messages return one or more variables that contain contextual information about the error. This is often the field or value that triggered the error.
addProductResponse
  .errorMessage.error.parameter
  [ attribute name ]
string Conditionally Various warning and error messages return one or more variables that contain contextual information about the error. This is often the field or value that triggered the error.
addProductResponse
  .errorMessage.error.severity
ErrorSeverity Conditionally Indicates whether the reported problem is fatal (an error) or is less- severe (a warning). Review the error message details for information on the cause.

If the request fails and the application is the source of the error (for example, a required element is missing), update the application before you retry the request. If the problem is due to incorrect user data, alert the end-user to the problem and provide the means for them to correct the data. Once the problem in the application or data is resolved, re-send the request to eBay.

If the source of the problem is on eBay's side, you can retry the request a reasonable number of times (eBay recommends you try the request twice). If the error persists, contact Developer Technical Support. Once the problem has been resolved, you can resend the request in its original form.

If a warning occurs, warning information is returned in addition to the business data. Normally, you do not need to resend the request (as the original request was successful). However, depending on the cause of the warning, you might need to contact the end user, or eBay, to effect a long term solution to the problem.

Applicable values:

Error
eBay encountered a fatal error during the processing of the request, causing the request to fail. When eBay encounters an error, it returns error data instead of the requested business data. Inspect the error details and resolve the problem before resubmitting the request.
Warning
The request was successfully processed, but eBay encountered a non-fatal error during the processing that could affect the data returned. For example, eBay might have changed the value of an input field. In this case, eBay returns a successful response, but it also returns a warning. For best results, requests should return without warnings. Inspect the warning details and resolve the problem before resubmitting the request.

Code so that your app gracefully handles any future changes to this list.
addProductResponse
  .errorMessage.error.subdomain
string Conditionally Name of the subdomain in which the error occurred.
subdomain values:
MarketplaceCatalog
The error is specific to the Marketplace Catalog subdomain.
MarketplaceCommon
The error is common to all Marketplace services.
addProductResponse
  .invocationId
string Conditionally A unique identifer for a given product submission, corresponding to a specific product request. Only returned if it was specified in the addProductRequest when the product was submitted with addProducts.
addProductResponse.status ProductSubmissionStatus Always Processing/acceptance status for a product submission.
addProductResponse.status.ePID string Conditionally,
repeatable: [0..*]
The eBay Product Identifier (ePID) is the unique identifier for the product in the eBay catalog.

Returned in the following conditions:
  • Product successfully added or updated—when a product has been successfully added to or updated in the catalog (i.e., status is Approved), the ePID for the new or updated product is returned.
  • Matching product found—when the catalog already contains a product that matches the submitted product, the submission is rejected and the ePID of the existing product is returned.
addProductResponse.status
  .productSubmissionId
string Conditionally A unique [how unique?] identifier for a specific product submission. [When is this not returned?]
addProductResponse.status
  .statusCode
ProductSubmissionStatusCode Always The state of the product submission. When a product is submitted, its status is Pending while eBay reviews the submission. Product submissions may remain in a Pending state for several hours.

Applicable values:

Approved
The product submission has been approved and added to the eBay catalog.
Pending
The product submission is under review.
Rejected
The product submission was rejected. The product did not meet all acceptance criteria.

Code so that your app gracefully handles any future changes to this list.
addProductResponse.timestamp dateTime Always This value represents the date and time when eBay processed the request. This value is returned in GMT, the ISO 8601 date and time format (YYYY- MM- DDTHH:MM:SS.SSSZ). See the "dateTime" type for information about the time format, and for details on converting to and from the GMT time zone.
addProductResponse.version string Always The release version that eBay used to process the request. Developer Technical Support may ask you for the version value if you work with them to troubleshoot issues.

Note: The version in use is normally the latest release version, as specified in the release notes. Note that eBay releases the API to international sites about a week after the API version is released to the US site.
clientBatchId string Conditionally Identifier to help users match requests and responses in multi-threaded applications. Simple pass-thru of identifier provided in the request. Only returned if it is specified in the request.
Max length: ???.
Standard Output Fields  
ack AckValue Always Indicates whether or not errors or warnings were generated during the processing of the request.

Applicable values:

Failure
The request was processed successfully, but something occurred that may affect your application or the user.
PartialFailure
The request that triggered the error was processed successfully but with some warnings.
Success
The request that triggered the error was not processed successfully. When a serious application-level error occurs, the error is returned instead of the business data.
Warning
The request that triggered the error was processed successfully but with some warnings.

Code so that your app gracefully handles any future changes to this list.
errorMessage ErrorMessage Conditionally Description of an error or warning that occurred when eBay processed the request. Not returned if the ack value is Success.
errorMessage.error ErrorData Conditionally,
repeatable: [0..*]
Details about a single error.
errorMessage.error.category ErrorCategory Conditionally There are three categories of errors: request errors, application errors, and system errors.

Applicable values:

Application
An error occurred due to a problem with the request, with the most likely source being the application sending the request. For example, the request is missing a required data element or it contains an invalid field. The problem must be corrected before the request can be resent. Inspect the error message to find the cause of the problem. If the problem is due to an application error, modify the application and resend the request. If the error is due to invalid data, the source of the data must be corrected before you resend the resend request to eBay.
Request
An error occurred due to a problem with the request, with the most likely source being missing or invalid data in the request. The problem must be corrected before the request can be retried. Inspect the error message to find the cause of the problem. If the problem is a result of end-user data, alert the end-user to the problem and provide the means for them to correct the problem. Once the problem is resolved, resend the request to eBay.
System
Indicates that an error has occurred on the eBay system side. For example, a database or server could be down. Inspect the error message to find the cause of the problem. If the problem is on the eBay side, an application can retry the request as-is a reasonable number of times (eBay recommends twice). If the error persists, contact Developer Technical Support. Once the problem has been resolved, the request may be resent in its original form.

Code so that your app gracefully handles any future changes to this list.
errorMessage.error.domain string Conditionally Name of the domain in which the error occurred.
domain values:
Marketplace
A business or validation error occurred in the service.
SOA
An exception occurred in the Service Oriented Architecture (SOA) framework.
errorMessage.error.errorId long Conditionally A unique code that identifies the particular error condition that occurred. Your application can use error codes as identifiers in your customized error-handling algorithms.
errorMessage.error.exceptionId token Conditionally Unique identifier for an exception associated with an error.
errorMessage.error.message string Conditionally A detailed description of the condition that caused in the error.
errorMessage.error.parameter ErrorParameter (string) Conditionally,
repeatable: [0..*]
Various warning and error messages return one or more variables that contain contextual information about the error. This is often the field or value that triggered the error.
errorMessage.error.parameter
  [ attribute name ]
string Conditionally Various warning and error messages return one or more variables that contain contextual information about the error. This is often the field or value that triggered the error.
errorMessage.error.severity ErrorSeverity Conditionally Indicates whether the reported problem is fatal (an error) or is less- severe (a warning). Review the error message details for information on the cause.

If the request fails and the application is the source of the error (for example, a required element is missing), update the application before you retry the request. If the problem is due to incorrect user data, alert the end-user to the problem and provide the means for them to correct the data. Once the problem in the application or data is resolved, re-send the request to eBay.

If the source of the problem is on eBay's side, you can retry the request a reasonable number of times (eBay recommends you try the request twice). If the error persists, contact Developer Technical Support. Once the problem has been resolved, you can resend the request in its original form.

If a warning occurs, warning information is returned in addition to the business data. Normally, you do not need to resend the request (as the original request was successful). However, depending on the cause of the warning, you might need to contact the end user, or eBay, to effect a long term solution to the problem.

Applicable values:

Error
eBay encountered a fatal error during the processing of the request, causing the request to fail. When eBay encounters an error, it returns error data instead of the requested business data. Inspect the error details and resolve the problem before resubmitting the request.
Warning
The request was successfully processed, but eBay encountered a non-fatal error during the processing that could affect the data returned. For example, eBay might have changed the value of an input field. In this case, eBay returns a successful response, but it also returns a warning. For best results, requests should return without warnings. Inspect the warning details and resolve the problem before resubmitting the request.

Code so that your app gracefully handles any future changes to this list.
errorMessage.error.subdomain string Conditionally Name of the subdomain in which the error occurred.
subdomain values:
MarketplaceCatalog
The error is specific to the Marketplace Catalog subdomain.
MarketplaceCommon
The error is common to all Marketplace services.
timestamp dateTime Always This value represents the date and time when eBay processed the request. This value is returned in GMT, the ISO 8601 date and time format (YYYY- MM- DDTHH:MM:SS.SSSZ). See the "dateTime" type for information about the time format, and for details on converting to and from the GMT time zone.
version string Always The release version that eBay used to process the request. Developer Technical Support may ask you for the version value if you work with them to troubleshoot issues.

Note: The version in use is normally the latest release version, as specified in the release notes. Note that eBay releases the API to international sites about a week after the API version is released to the US site.



Samples

Code samples not yet added for this call's documentation.



Change History

Change Date Description
1.4.0
4/15/2011
  • (added) New call.