Fields may be optional or conditionally required for a specific create call, but become required when calling the publishOffer, bulkPublishOffer, or publishOfferByInventoryItemGroup method to create active listings. For example, a missing merchantLocationKey will not cause issues when first creating an offer (the createOffer is successful), but calling the publishOffer method will fail if the offer does not have the merchantLocationKey. These are noted in each method's reference documentation as a Publish offer note.
Important! In order to use the Inventory API, sellers need to opt in to business policies (see optInToProgram). Once opted in, use the Account API v1 to set up policies for fulfillment (previously known as shipping), return, and payment. All three policies are required to publish offers and create active listings through the Inventory API. Sellers reference these business policies by their unique identifiers. See the use cases in the Account API v1 Overview for more information.
Note: Publishing an offer that can be picked-up in a store (Available for In-Store Pickup) has additional requirements. See In-store pickup for specifics.
The following fields, organized by resource objects, are required before a live offer can be published to an eBay marketplace.
Location fields
The following location fields are required to publish an offer:
-
merchantLocationKey (required as a path parameter in the createInventoryLocation method)
-
location.address including either:
-
city, stateOrProvince, and country
or
-
postalCode and country
-
Note: Use the createInventoryLocation method to create the required location fields. This method will not work without the above listed fields.
Inventory item fields
The following inventory item fields are required to publish an offer:
-
sku (required as a path parameter in the createOrReplaceInventoryItem method)
-
availability.shipToLocationAvailability.quantity (required either set here or set in offer object; setting availability in offer object overrides this field; see note in offer)
-
product including:
Note: Use the createOrReplaceInventoryItem / bulkCreateOrReplaceInventoryItem method to set the required inventory item fields.
Inventory item group fields
The following inventory item group fields are required to publish a multiple-SKU offer:
-
inventoryItemGroupKey (required as a path parameter in the createOrReplaceInventoryItemGroup method)
-
Before an offer can be published, at least one image must exist for the offer. Links to images can either be passed in through this imageUrls array, or they can be passed in through the product.imageUrls container when creating each inventory item in the group. If the variesBy.aspectsImageVariesBy field is used to specify the main product aspect where the variations vary, the links to the images must be passed in through this imageUrls container, and there should be a picture for each variation. For example, if the variesBy.aspectsImageVariesBy field is set to
Color
, a link to an image should be included demonstrating each available color in the group. -
variesBy including:
-
specifications container array of:
Note: Use the createOrReplaceInventoryItemGroup method to set the required inventory item group fields.
Offer fields
The following offer fields are required to publish an offer:
-
offerId (required as a path parameter in the publishOffer method)
-
sku (see the required Inventory item fields)
-
Note: The availableQuantity set here (in the offer) overrides the availability.shipToLocationAvailability.quantity set in the inventory item. One of either quantity field is required before an offer can be published to create an active listing. An out of stock listing will result if set to
0
. -
listingPolicies (set with the Account API v1):
-
merchantLocationKey (see the required Location fields)
Note: Use the createOffer / bulkCreateOffer method to set the required offer fields.