From Inventory Item to eBay Marketplace Offer
The basic flow of using the Inventory API to publish an single-variation Offer involves the use of the following three calls:
- The Create Or Replace Inventory Item call to create the Inventory Item record;
- The Create Offer call to add details of the listing, including price, eBay marketplace, eBay category, quantity, and listing polices (payment, shipping, and return policy);
- The Publish Offer call to activate the Offer on the eBay marketplace.
Creating the Inventory Item Record
For each product that a seller intends to sell on an eBay marketplace, an Inventory Item record is required. Each Inventory Item record is identified by its seller-defined SKU value. In addition to the required SKU value, the Inventory Item Record also requires the following information:
- Product details;
- Quantity available;
- Condition of the product;
- (Conditional) Shipping package weight and dimensions.
Specifying Product Details
The seller uses the product container of the Create Or Replace Inventory Item call to provide product details such as title, subtitle, description, product aspects, and links to images. Alternatively, the seller has the option to provide an EAN, an ISBN, a UPC, or a Brand/Manufacturer Part Number combination, and if the product is matched to a product in the eBay Catalog, eBay will auto-populate the product details for the Inventory Item record.
If using a product identifier to auto-populate product details, it is recommended that the seller should use a Get Inventory Item call to make sure that the product details for the Inventory Item record are acceptable before creating an Offer. If changes are needed, the seller will have to use an additional Create Or Replace Inventory Item call to make any necessary changes to product details.
The product.title and product.description values that are given for the Inventory Item will become the listing title and listing description for the live eBay listing. For Inventory Items that are part of the same Inventory Item Group, the product.title and product.description values for those Inventory Items must be the same, as those Inventory Items will ultimately be listed in the same multiple-variation listing. Similarly, if used, the product.subtitle values for those Inventory Items in the same Inventory Item Group must also be the same.
The seller uses the availability container of the Create Or Replace Inventory Item call to specify the quantity of product that is available through the traditional ship-to-home method.
For the traditional ship-to-home method, the seller just uses the availability.shipToLocationAvailability container to specify the total ship-to-home quantity available. The locations where the seller is willing to ship to will be contained in the fulfillment listing policy that will be referenced when the seller creates the Offer. Fulfillment, payment, and return listing policies are created and managed with the Account API.
Specifying Condition of Product
A supported item condition enumeration value must be passed in through the condition field of Create Or Replace Inventory Item call to specify the condition of the product. If the product is used or refurbished, it is also a good idea if the seller uses the optional conditionDescription field to more clearly describe the condition of the Inventory Item. The conditionDescription field is not applicable to Inventory Items in new condition, and this field will be ignored if it is passed in for a Inventory Item in new condition.
Specifying Package Weight and Dimensions for Calculated Shipping
The shipping package weight and dimensions will be needed if the seller will use calculated shipping. The package weight and dimensions will be set using the packageWeightAndSize container of the Create Or Replace Inventory Item call.
Creating and Publishing the Offer
Once an Inventory Item record has been created for a product, the seller can then create an Offer for that product on a specific eBay marketplace. Details of the product have already been established with the Inventory Item record, but the createOffer call will add the following listing details:
- The eBay marketplace where the product will be offered;
- The available quantity of that product on that eBay marketplace;
- The listing format;
- The eBay category where the product will be listed;
- Referenced Payment, Fulfillment, and Return listing policies that set payment, fulfillment, and return-related values and settings in the Offer;
- The price of the product, and if applicable, the Minimum Advertised Price and Strikethrough Price information;
- Full paths to one or two eBay Store categories for sellers who own an eBay Store on that eBay marketplace and wish to upload the product to one or two eBay Store categories;
- Any tax-related information including the use of tax tables, VAT percentages, or third-party tax category exception codes.
Note that Payment, Fulfillment, and Return listing policies are all required when creating an Offer. The seller must be opted in to Business Policies. Listing policies are created and managed with the Account API, or in the Business Policies page of My eBay.
Upon successful creation of the Offer, a unique offerId value will be returned. This offerId value will be required for other Offer calls, including Update Offer, Publish Offer, Delete Offer, and Get Offer. See the Create Offer Call Reference page for more information on creating the request payload and executing the API call.
Once an Offer is created, and the seller is happy with it, it is time to publish the Offer with the Publish Offer call. With this call, the seller only needs to pass in the offerId value at the end of the call URI. The Offer's offerId value is returned in the response of a Create Offer call. A successful Publish Offer call will actually create an eBay listing on the marketplace that was specified with Create Offer call that created the Offer.
Upon successful publishing of the Offer, an eBay listing ID is returned in the Publish Offer response. If the Publish Offer call fails, the reason for the failure will be returned under a errors container in the call response and/or through an HTTP status code page.