The createBundles call is used by a seller to create one or more product bundles. A product bundle consists of a primary product and one or more related product groups. Each product group contains multiple related items. All related items in a product group are tied to the primary product, which is identified by the primarySKU value.
The createBundles request requires a product bundle name (bundleName), a SKU value for the primary product (primarySKU), one or more related product groups (relatedProductGroup) and scheduled start (scheduledStartTime) and end times (scheduledEndTime).
All related product groups must be named (groupName) and must contain one or more related items (relatedProduct).
A title and/or SKU value, and a discount rule (discount) must be defined for all related items.
A bundleStatus container is returned for each product bundle. For a successfully created bundle, a bundleID(unique identifier created by eBay) and a bundleName is returned. If a bundle was not created successfully, only the bundleName is returned, and an errorMessage container should also be returned at the product bundle level. To determine the issue, read the error message(s).
Note: If they occur, errors and/or warnings are returned at the call level and at the product bundle level in the createBundles response. If an error or warning appears at the call level, there is an issue with the call request. If an error or warning occurs at the product bundle level, there is an issue with the creation of that specific bundle.
| Output Samples Change History User Notes |
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).
See also Samples.
<?xml version="1.0" encoding="utf-8"?>
<createBundlesRequest xmlns="http://www.ebay.com/marketplace/sellerinventory/v1/services">
<bundle> Bundle
<bundleName> string </bundleName>
<bundleStatus> BundleStatusEnum </bundleStatus>
<isoCurrencyCode> int </isoCurrencyCode>
<primarySKU> string </primarySKU>
<!-- ... more primarySKU nodes here ... -->
<relatedProductGroup> RelatedProductGroup
<groupName> string </groupName>
<rank> int </rank>
<relatedProduct> RelatedProduct
<discount> Discount
<discountAmount currencyId="string"> Amount (double) </discountAmount>
<discountPercent> double </discountPercent>
<discountType> DiscountTypeEnum </discountType>
</discount>
<maxQtyForSinglePrimary> int </maxQtyForSinglePrimary>
<rank> int </rank>
<SKU> string </SKU>
<title> string </title>
</relatedProduct>
<!-- ... more relatedProduct nodes here ... -->
<singleRelatedSKUPurchaseOnly> boolean </singleRelatedSKUPurchaseOnly>
</relatedProductGroup>
<!-- ... more relatedProductGroup nodes here ... -->
<scheduledEndTime> dateTime </scheduledEndTime>
<scheduledStartTime> dateTime </scheduledStartTime>
<site> GlobalId (token) </site>
</bundle>
<!-- ... more bundle nodes here ... -->
</createBundlesRequest>
| Argument | Type | Occurrence | Meaning |
|---|
| bundle | Bundle | Required,
repeatable: [1..*] |
Root container of a product bundle. One or more product bundles may be created in one createBundles call, retrieved in one findBundles or getBundles call, or updated in one updateBundles call. |
| bundle.bundleName | string | Required |
The name of the product bundle. bundleName is a required field for the createBundles and updateBundles calls. The bundleName is only available to you as a seller, and can assist you in managing your offers. The bundleName is always returned for all product bundles that are successfully created, updated, retrieved, and deleted with the corresponding API calls. Max length: 50. |
| bundle.bundleStatus | BundleStatusEnum | Optional |
This enumeration value indicates the current status of a product bundle. A bundleStatus value is required when using the updateBundleStatus call, and is optional when using the createBundles or updateBundles calls. In both update calls, the specified value will change the state of the existing product bundle if the call is successful. In the createBundles call, the common use case is to create a new product bundle and have that product bundle automatically activated once the scheduledStartTime is reached. For this use case, the bundleStatus field is not necessarily. However, there may a use case where a seller wants to create a new product bundle, but does not want it active yet, even after the scheduledStartTime is reached. In this case, the seller would include the bundleStatus field and set its value to Disabled. The bundleStatus field is always returned in the findBundles and getBundles calls if matching product bundle(s) are returned. Applicable values: • Active (in/out) This value indicates that the product bundle is active. Typically, a seller would specify this value in the createBundle call to create and activate the product bundle, or in either of the update calls to activate a disabled product bundle. • Disabled (in/out) This value indicates that the product bundle is disabled. Typically, a seller would specify this value in the updateBundles or updateBundleStatus calls to disable an active product bundle. • Ended (in/out) This value indicates that the life of the product bundle has ended. The life of a product bundle ends at scheduledEndTime. • Scheduled (in/out) This value indicates that the product bundle is scheduled to become Active at scheduledStartTime. |
| bundle.isoCurrencyCode | int | Optional |
Currency representation based on ISO 4217 Standard: http://www.iso.org/iso/currency_codes_list-1 Every currency has the following attributes:
|
| bundle.primarySKU | string | Required,
repeatable: [1..500] |
The seller-defined SKU (Stock Keeping Unit) value of the primary product. All related products in a product bundle are associated with this primary product SKU, appear on the primary product's listings, and are eligible for the product bundle discount. The primarySKU is always returned for all product bundles that are successfully created, updated, retrieved, and deleted with the corresponding API calls. Up to 500 primarySKU values may be used in a product bundle so the same set of related products is displayed on each primary product's listings. |
| bundle.relatedProductGroup | RelatedProductGroup | Required,
repeatable: [1..*] |
Container consisting of detailed information on a related product group. Related product groups are tied to the primary product in a product bundle, and there can be multiple related product groups in a product bundle. |
|
bundle.relatedProductGroup .groupName |
string | Required | This value indicates the name of related product group. |
|
bundle.relatedProductGroup .rank |
int | Optional | This integer value controls (in request) or indicates (in response) the placement of the related product group in the primary product listing. If the rank value(s) are not specified for related product groups, the placement of the product groups in the primary product listing will coincide with the order in which the related product groups are listed in the createBundles or updateBundles calls. |
|
bundle.relatedProductGroup .relatedProduct |
RelatedProduct | Required,
repeatable: [1..14] |
Container consisting of detailed information on one product in the related product group. There can be up to 14 products in one related product group. |
|
bundle.relatedProductGroup .relatedProduct.discount |
Discount | Required | Container consisting of discount type and discount amount (fixed or percentage value) that the buyer will receive on a specific related product if that buyer purchases the primary product. |
|
bundle.relatedProductGroup .relatedProduct.discount .discountAmount |
Amount (double) | Conditional | This dollar amount indicates the fixed discount that a buyer will receive on the related product with the purchase of a primary product in a product bundle. This field must be specified in createBundles and updateBundles if the discountType value is set to Amount. Similarly, this field is returned in findBundles and getBundles if the discountType value is set to Amount. |
| bundle.relatedProductGroup .relatedProduct.discount .discountAmount [ attribute currencyId ] |
string | Conditional | This attribute identifies the currency in which the monetary amount is specified. |
|
bundle.relatedProductGroup .relatedProduct.discount .discountPercent |
double | Conditional | This percentage value indicates the percentage rate that a buyer will receive on a related product with the purchase of primary product in a product bundle. This field must be specified in createBundles and updateBundles< /b> if the discountType value is set to Percentage< /b>. Similarly, this field is returned in findBundles and < b>getBundles if the discountType value is set to Percentage. |
|
bundle.relatedProductGroup .relatedProduct.discount .discountType |
DiscountTypeEnum | Required |
Field indicating if the discount type for the product bundle is a fixed amount or a percentage of the related product value.
Applicable values: • Amount (in/out) Specifies discount type as a fixed amount. Discount will be in the currency of the original listing. • Percentage (in/out) This enumeration value indicates that the discount type is a percentage value of the related product value. |
|
bundle.relatedProductGroup .relatedProduct .maxQtyForSinglePrimary |
int | Optional |
The seller includes this field in createBundles or updateBundles calls to set an upper threshold value on the quantity of a specific related product that a single buyer may purchase and still be eligible for the product group discount. This field is only returned in findBundles and getBundles calls if set for the specific product. |
|
bundle.relatedProductGroup .relatedProduct.rank |
int | Optional | This integer value controls (in request) or indicates (in response) the placement of the related product within the related product group. If the rank value is not specified for the product, the placement of the product in the related product group will coincide with the order in which the product is listed in the createBundles or updateBundles calls. |
|
bundle.relatedProductGroup .relatedProduct.SKU |
string | Conditional |
This value indicates the seller-defined SKU (Stock Keeping Unit) for a specific product in the related product group. To identify a product, either a SKU value, a title value, or both values must be specified in the createBundles and updateBundles calls. Max length: 50. |
|
bundle.relatedProductGroup .relatedProduct.title |
string | Conditional | This value indicates the product title for a specific product in the related product group. To identify a product, either a SKU value, a title value, or both values must be specified in the createBundles and updateBundles calls. |
|
bundle.relatedProductGroup .singleRelatedSKUPurchaseOnly |
boolean | Optional |
The seller includes and sets this boolean field to 'true' in createBundles or updateBundles calls if the product group discount only applies to a specific product in the product group. If this boolean field is 'false', it indicates that the buyer can select multiple products within the product group and still be eligibile for the product group discount. For single SKU discounts, radio buttons will appear adjacent to each product of the product group in the primary product listing. For multiple SKU discounts, check boxes (for multiple selections) will appear adjacent to each product of the product group in the primary product listing. This field is only returned in findBundles and getBundles calls if 'true'. Default: false. |
| bundle.scheduledEndTime | dateTime | Required |
This dateTime value indicates the scheduled end time of a product bundle. Once the scheduledEndTime value is reached, the product bundle becomes inactive on eBay and changes to the Ended state. The following dateTime format is used: YYYY-mm-DDTHH:MM:SS + Tz offset. If time zone offset is not set, then time zone will be defaulted to MST. If time (HH:MM:SS) is not set, then time will be defaulted to 00:00:00 MST. scheduledEndTime is a required field for the createBundles and updateBundles calls and its value should be further into the future than the scheduledStartTime. The scheduledEndTime is always returned for all product bundles that are successfully retrieved with the findBundles and getBundles calls. |
| bundle.scheduledStartTime | dateTime | Required |
This dateTime value indicates the scheduled start time of a product bundle. Once the scheduledStartTime value is reached, the product bundle becomes active on eBay and remains active until the scheduledEndTime is reached, or until the product bundle is disabled or ended on the site or through the updateBundles or updateBundleStatus calls. The following dateTime format is used: YYYY-mm-DDTHH:MM:SS + Tz offset. If time zone offset is not set, then time zone will be defaulted to MST. If time (HH:MM:SS) is not set, then time will be defaulted to 00:00:00 MST. scheduledStartTime is a required field for the createBundles and updateBundles calls. The scheduledStartTime is always returned for all product bundles that are successfully retrieved with the findBundles and getBundles calls. |
| bundle.site | GlobalId (token) | Optional | This GlobalId value (such as EBAY-US) indicates the listing site on which the product bundle will appear. This field is required for the createBundles and updateBundles calls, and is always returned for matching product bundles in the findBundles and getBundles calls. |
| Input Samples Change History User Notes |
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).
See also Samples.
<?xml version="1.0" encoding="utf-8"?>
<createBundlesResponse xmlns="http://www.ebay.com/marketplace/sellerinventory/v1/services">
<!-- 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 nodes here ... -->
<severity> ErrorSeverity </severity>
<subdomain> string </subdomain>
</error>
<!-- ... more error nodes here ... -->
</errorMessage>
<timestamp> dateTime </timestamp>
<version> string </version>
<!-- Call-specific Output Fields -->
<bundleStatus> BundleStatus
<ack> AckValue </ack>
<bundleID> long </bundleID>
<bundleName> string </bundleName>
<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 nodes here ... -->
<severity> ErrorSeverity </severity>
<subdomain> string </subdomain>
</error>
<!-- ... more error nodes here ... -->
</errorMessage>
<primarySKU> string </primarySKU>
</bundleStatus>
<!-- ... more bundleStatus nodes here ... -->
</createBundlesResponse>
| Return Value | Type | Occurrence | Meaning |
|---|
| Standard Output Fields [Jump to call-specific fields] |
| ack | AckValue | Always |
A token representing the application-level acknowledgement code that indicates the response status.
Applicable values: • Failure (out) eBay encountered a fatal error during the processing of the request, causing the request to fail. When a serious application-level error occurs, the error is returned instead of the business data. • PartialFailure (out) eBay successfully processed the request, but one or more non-fatal errors occurred during the processing. Inspect the message details and resolve any problems before resubmitting the request. • Success (out) eBay successfully processed the request and the business data is returned in the response. Note that it is possible for a response to return Success, but still not contain the expected data in the result. • Warning (out) The request that triggered the error was processed successfully but with one or more warnings. |
| errorMessage | ErrorMessage | Conditionally | Information for an error or warning that occurred when eBay processed the request. This field is 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 (out) 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 (out) 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 (out) 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 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. |
| errorMessage.error.domain | string | Conditionally | Name of the domain in which the error occurred. |
| 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 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 | The name of the input parameter returned with the error. Inspecting the parameter (or its input value) will often aid in understanding the cause of the error. Not all error messages contain this value. |
| 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, resend 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 (out) 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 (out) 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. |
| errorMessage.error.subdomain | string | Conditionally | Name of the subdomain in which the error occurred. |
| timestamp | dateTime | Always | This value represents the date and time when eBay processed the request. The time zone of this value is GMT and the format is the ISO 8601 date and time format (YYYY-MM-DDTHH:MM:SS.SSSZ). See Time Values in the eBay Web Services guide for information about this time format and converting to and from the GMT time zone. |
| version | string | Always | The version of the response payload schema. Indicates the version of the schema that eBay used to process the request. |
| Call-specific Output Fields |
| bundleStatus | BundleStatus | Always,
repeatable: [1..*] |
Container returned in the response of the createBundles call. The bundleStatus container includes the bundleName and primarySKU (both passed in the request), the ack value, and the bundleID, which is the unique identifier for a product bundle created by eBay. When using the createBundles call, the bundleID is a key field of the bundleStatus container, as the creation of this ID indicates a successfully created new product bundle. An errorMessage container is returned if there was an error or warning associated with the creation of the product bundle. |
| bundleStatus.ack | AckValue | Always |
This ack value indicates the sucess or failure of creating, updating, or deleting a product bundle.
Applicable values: • Failure (out) eBay encountered a fatal error during the processing of the request, causing the request to fail. When a serious application-level error occurs, the error is returned instead of the business data. • PartialFailure (out) eBay successfully processed the request, but one or more non-fatal errors occurred during the processing. Inspect the message details and resolve any problems before resubmitting the request. • Success (out) eBay successfully processed the request and the business data is returned in the response. Note that it is possible for a response to return Success, but still not contain the expected data in the result. • Warning (out) The request that triggered the error was processed successfully but with one or more warnings. |
| bundleStatus.bundleID | long | Always |
This value is a unique identifier generated by eBay upon successful creation of the product bundle. This is the name that appears on the site. This value is needed when attempting to perform any subsequent actions on the product bundle. When using the createBundles call, the appearance of the bundleID value indicates a successfully created new product bundle. |
| bundleStatus.bundleName | string | Always |
This string value indicates the name of the product bundle. This is a name that is only visible to you as a seller, and can assist you in managing your offers. A product bundle is named on the site, or through the createBundles call. Max length: 50. |
| bundleStatus.errorMessage | ErrorMessage | Conditionally | This container will appear if there was an error or warning associated with the creation, update, or deletion of a product bundle. |
|
bundleStatus.errorMessage .error |
ErrorData | Conditionally,
repeatable: [0..*] |
Details about a single error. |
|
bundleStatus.errorMessage .error.category |
ErrorCategory | Conditionally |
There are three categories of errors: request errors, application errors, and system errors.
Applicable values: • Application (out) 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 (out) 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 (out) 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 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. |
|
bundleStatus.errorMessage .error.domain |
string | Conditionally | Name of the domain in which the error occurred. |
|
bundleStatus.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. |
|
bundleStatus.errorMessage .error.exceptionId |
token | Conditionally | Unique identifier for an exception associated with an error. |
|
bundleStatus.errorMessage .error.message |
string | Conditionally | A detailed description of the condition that caused the error. |
|
bundleStatus.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. |
| bundleStatus.errorMessage .error.parameter [ attribute name ] |
string | Conditionally | The name of the input parameter returned with the error. Inspecting the parameter (or its input value) will often aid in understanding the cause of the error. Not all error messages contain this value. |
|
bundleStatus.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, resend 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 (out) 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 (out) 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. |
|
bundleStatus.errorMessage .error.subdomain |
string | Conditionally | Name of the subdomain in which the error occurred. |
| bundleStatus.primarySKU | string | Always | This string value indicates the name of the SKU (Stock Keeping Unit) of the primary product, to which all other related product groups and products are linked to through the product bundle. The primarySKU is established on the site, or through the createBundles call. |
| Input Output Change History User Notes |
| Input Output Samples User Notes |
| Version | Description |
|---|---|
| 1.0.0 2011-09-14 |
|
| Input Output Samples Change History User Notes |
Copyright © 2011–2012 eBay, Inc. All rights reserved. This documentation and the API may only be used in accordance with the eBay Developer Network and API License Agreement.