ToddT
ToddT

Reputation: 3258

ebay BulkDataExchangeRequests API XML - UUID is missing

I'm testing a request to the LMS side of the eBay API by sending a AddFixedPriceItemRequest to BulkDataExchangeRequests via createUploadJob.

When I do this I get the error: "UUID is required" even though in the documentation that I can find it says UUID is optional. However, I am including a UUID in the body of the call.

For the life of me I can't find an example of what the entire API call should look like. Headers included.

I am coding this in Ruby using the gems HTTParty and Builder for the XML. My other calls are working fine and I verified this is the actual XML that is being sent.

Here is what my XML looks like with header info:

destination = 'https://webservices.sandbox.ebay.com/BulkDataExchangeService'

headers = {
 "X-EBAY-API-COMPATIBILITY-LEVEL"=>"949",
 "X-EBAY-API-DEV-NAME"=>"My dev name token",
 "X-EBAY-API-APP-NAME"=>"App name token",
 "X-EBAY-API-CERT-NAME"=>"Cert name token",
 "X-EBAY-SOA-OPERATION-NAME"=>"createUploadJob",
 "X-EBAY-SOA-SECURITY-TOKEN" => "My auth token",
 "X-EBAY-API-SITEID"=>"0",
 "Content-Type"=>"text/xml"}

 <?xml version="1.0" encoding="utf-8"?>
 <BulkDataExchangeRequests>
  <Header>
   <SiteId>0</SiteId>
   <Version>739</Version>
  </Header>
<AddFixedPriceItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
  <eBayAuthToken>My Auth token</eBayAuthToken>
</RequesterCredentials>
<ErrorLanguage>en_US</ErrorLanguage>
<WarningLevel>High</WarningLevel>
<Item>
  <Title>Listing with a bunch of CSS but no JS</Title>
  <Description>
    <![CDATA[bunch of html]]>
  </Description>
  <PrimaryCategory>
    <CategoryID>37565</CategoryID>
  </PrimaryCategory>
  <ConditionID>3000</ConditionID>
  <CategoryMappingAllowed>true</CategoryMappingAllowed>
  <Country>US</Country>
  <Currency>USD</Currency>
  <DispatchTimeMax>3</DispatchTimeMax>
  <ListingDuration>Days_7</ListingDuration>
  <ListingType>FixedPriceItem</ListingType>
  <PaymentMethods>PayPal</PaymentMethods>
  <PayPalEmailAddress>[email protected]</PayPalEmailAddress>
  <PictureDetails>
    <PictureURL>http://s18.postimg.org/ocjdgkfrt/4_pack.jpg</PictureURL>
  </PictureDetails>
  <PostalCode>28211</PostalCode>
  <ItemSpecifics>
    <NameValueList>
      <Name>Brand</Name>
      <Value>Nike</Value>
    </NameValueList>
    <NameValueList>
      <Name>Model</Name>
      <Value>Odyssey</Value>
    </NameValueList>
  </ItemSpecifics>
  <Variations>
    <VariationSpecificsSet>
      <NameValueList>
        <Name>Size</Name>
        <Value>XS</Value>
        <Value>Large</Value>
      </NameValueList>
      <NameValueList>
        <Name>Color</Name>
        <Value>Black</Value>
        <Value>Pink</Value>
      </NameValueList>
    </VariationSpecificsSet>
    <Variation>
      <SKU>my_first_sku</SKU>
      <StartPrice>35.99</StartPrice>
      <Quantity>5</Quantity>
      <VariationSpecifics>
        <NameValueList>
          <Name>Size</Name>
          <Value>XS</Value>
        </NameValueList>
        <NameValueList>
          <Name>Color</Name>
          <Value>Black</Value>
        </NameValueList>
      </VariationSpecifics>
    </Variation>
    <Variation>
      <SKU>my_second_sku</SKU>
      <StartPrice>38.99</StartPrice>
      <Quantity>6</Quantity>
      <VariationSpecifics>
        <NameValueList>
          <Name>Size</Name>
          <Value>Large</Value>
        </NameValueList>
        <NameValueList>
          <Name>Color</Name>
          <Value>Pink</Value>
        </NameValueList>
      </VariationSpecifics>
    </Variation>
    <Pictures>
      <VariationSpecificName>Color</VariationSpecificName>
      <VariationSpecificPictureSet>
        <VariationSpecificValue>Black</VariationSpecificValue>
        <PictureURL>http://thecodeplayer.com/uploads/s.jpg</PictureURL>
        <PictureURL>http://thecodeplayer.com/uploads/1.jpg</PictureURL>
      </VariationSpecificPictureSet>
      <VariationSpecificPictureSet>
        <VariationSpecificValue>Pink</VariationSpecificValue>
        <PictureURL>http://thecodeplayer.com/uploads/mediaB.jpg</PictureURL>
        <PictureURL>http://thecodeplayer.com/uploads/mediadx.jpg</PictureURL>
      </VariationSpecificPictureSet>
    </Pictures>
  </Variations>
  <ReturnPolicy>
    <ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption>
    <RefundOption>MoneyBack</RefundOption>
    <ReturnsWithinOption>Days_30</ReturnsWithinOption>
    <Description>This is just a description for the return 
     policy</Description>
    <ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption>
  </ReturnPolicy>
  <ShippingDetails>
    <ShippingType>Flat</ShippingType>
    <ShippingServiceOptions>
      <ShippingServicePriority>1</ShippingServicePriority>
      <ShippingService>USPSMedia</ShippingService>
      <ShippingServiceCost>2.50</ShippingServiceCost>
    </ShippingServiceOptions>
  </ShippingDetails>
  <Site>US</Site>
  <UUID>8deb51e81bdc4b8eb136f92b746dd898</UUID>
</Item>

Upvotes: 1

Views: 397

Answers (1)

SH-
SH-

Reputation: 1642

Based on your XML provided above; It seems that you are confusing the nature of LMS.

  • LMS is not a make a call -> change eBay listing.
  • LMS is a multi-step process to handle Bulk Operations.
  • Because of the Bulk nature, the steps are separated into multiple calls.
  • The advantage of this is that the Service can validate each step separately.
  • Also it simplifies sending large payloads.

That means that you MUST NOT include the Item Payload in the createUploadJob. (See Ebay Documentation).


In general, you MUST:

  1. Create the upload Job. (createUploadJob).
  2. Then upload the File. (uploadFile).
  3. Then start the Job. (startUploadJob).

Followed By:

  1. (SHOULD) Wait Some time.
  2. Check the Job's status. (getJobStatus).
  3. Download the Result File. (downloadFile).

You should read the LMS guide. Starting with the section on workflow.

Upvotes: 3

Related Questions