ebay BulkDataExchangeRequests API XML - 缺少 UUID

ebay BulkDataExchangeRequests API XML - UUID is missing

我正在通过向 BulkDataExchangeRequests 发送 AddFixedPriceItemRequest 来测试对 eBay API LMS 端的请求创建上传作业

当我这样做时,我得到了错误:"UUID is required" 即使在我能找到的文档中它说 UUID 是可选的。但是,我在调用的 body 中包含了一个 UUID。

对于我来说,我找不到整个 API 调用应该是什么样子的例子。 Headers 包括在内。

我在 Ruby 中使用 gems HTTParty 和 Builder 为 XML 编写代码。我的其他电话工作正常,我确认这是实际发送的 XML。

这是我的 XML 和 header 信息的样子:

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>todd@piedmontred.com</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>

基于您在上面提供的XML;看来你混淆了LMS的本质。

  • LMS 不是打电话 -> 更改 eBay 列表。
  • LMS 是一个 multi-step 处理批量操作的进程。
  • 由于批量性质,这些步骤被分成多个调用。
  • 这样做的好处是服务可以单独验证每个步骤。
  • 它还简化了大负载的发送。

这意味着您不得在 createUploadJob 中包含 Item 负载。 (参见 Ebay Documentation)。


一般来说,您必须:

  1. 创建上传作业。 (createUploadJob).
  2. 然后上传文件。 (uploadFile).
  3. 然后开始作业。 (startUploadJob).

其次是:

  1. (应该)等一段时间。
  2. 检查作业的状态。 (getJobStatus).
  3. 下载结果文件。 (downloadFile).

你应该阅读 LMS guide. Starting with the section on workflow