Why is ItemLookup not returning any price information even when requesting all 3 offer groups?

感情迁移 提交于 2019-12-04 17:50:36

问题


I am using the Product Advertising API to do an ItemLookup on a valid ASIN, requesting all three flavors of offer groups, and I am not getting back any price information. Yet when I look at the same product on Amazon, it's in stock and has a valid price. I believe everything I need to describe the issue would be in the ItemLookupResponse returned in response to my ItemLookup Request, since it echos back all the parameters:

<ItemLookupResponse>
    <OperationRequest>
        <HTTPHeaders>
            <Header Name="UserAgent"
                Value="Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0" />
        </HTTPHeaders>
        <RequestId>09872c13-5297-4401-ad15-e631b05c7a8f</RequestId>
        <Arguments>
            <Argument Name="Condition" Value="All" />
            <Argument Name="Operation" Value="ItemLookup" />
            <Argument Name="Service" Value="AWSECommerceService" />
            <Argument Name="Signature"
                Value="<omitted>" />
            <Argument Name="MerchantId" Value="All" />
            <Argument Name="AssociateTag" Value="<omitted>" />
            <Argument Name="Version" Value="2011-08-01" />
            <Argument Name="ItemId" Value="B00828J7PG" />
            <Argument Name="IdType" Value="ASIN" />
            <Argument Name="AWSAccessKeyId" Value="<omitted>" />
            <Argument Name="Timestamp" Value="2012-10-16T20:30:28.000Z" />
            <Argument Name="ResponseGroup" Value="Offers,OfferFull,OfferSummary" />
        </Arguments>
        <RequestProcessingTime>0.0194200000000000</RequestProcessingTime>
    </OperationRequest>
    <Items>
        <Request>
            <IsValid>True</IsValid>
            <ItemLookupRequest>
                <Condition>All</Condition>
                <IdType>ASIN</IdType>
                <MerchantId>Deprecated</MerchantId>
                <ItemId>B00828J7PG</ItemId>
                <ResponseGroup>Offers</ResponseGroup>
                <ResponseGroup>OfferFull</ResponseGroup>
                <ResponseGroup>OfferSummary</ResponseGroup>
                <VariationPage>All</VariationPage>
            </ItemLookupRequest>
        </Request>
        <Item>
            <ASIN>B00828J7PG</ASIN>
            <ParentASIN>B00828J7PG</ParentASIN>
            <OfferSummary>
                <TotalNew>0</TotalNew>
                <TotalUsed>0</TotalUsed>
                <TotalCollectible>0</TotalCollectible>
                <TotalRefurbished>0</TotalRefurbished>
            </OfferSummary>
            <Offers>
                <TotalOffers>0</TotalOffers>
                <TotalOfferPages>0</TotalOfferPages>
                <MoreOffersUrl>0</MoreOffersUrl>
            </Offers>
        </Item>
    </Items>
</ItemLookupResponse><

回答1:


Edit:

An item returned by the Amazon Product API can represent either a single variation item (a single size and/or a single color) or a variation parent. When a single variation item is returned, you just have to use the same approach as you initially did and you'll be able to fetch the price.

A parent variation item (your case), however, is not associated with any offer (price), because it is an abstraction of a product and acts as a container for the existing product variations (different sizes, colors).

In this case, every variation contained within the variation parent has its own price and you can simply iterate through the set of variations and fetch the price you need.

Adding the Variations response group to your search/look up request is crucial, so don't omit it.

The request body:

<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
   <env:Header/>
   <env:Body>
       <ns1:ItemLookup xmlns='http://webservices.amazon.com/AWSECommerceService/2011-08-01' xmlns:ns1='http://webservices.amazon.com/AWSECommerceService/2011-08-01'>
           <AWSAccessKeyId>xxxxxxxxxxxxxxxxxxx</AWSAccessKeyId>
           <AssociateTag>xxxxxxxx</AssociateTag>
           <Request>
               <IdType>ASIN</IdType>
               <MerchantId>All</MerchantId>
               <ItemId>B008M4TB9C</ItemId>
               <ResponseGroup>Variations</ResponseGroup>
           </Request>
           <Signature>xxxxxxxx</Signature>
           <Timestamp>2012-12-13T23:49:27Z</Timestamp>
       </ns1:ItemLookup>
   </env:Body>
</env:Envelope>

The response body.

A price for a single variation can be found under:

Item->Variations->Item->Offer->OfferListing->Price.

<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
    <env:Body>
       <ItemLookupResponse xmlns='http://webservices.amazon.com/AWSECommerceService/2011-08-01'>
         <OperationRequest>
           <HTTPHeaders>
             <Header Name='UserAgent' Value='JBossRemoting - 2.5.1 (Flounder)'/>
           </HTTPHeaders>
           <RequestId>05c3ecdd-60ae-4a87-8bcb-70f80a5f5d5b</RequestId>
           <Arguments>
             <Argument Name='Service' Value='AWSECommerceService'/>
           </Arguments>
           <RequestProcessingTime>0.1092920000000000</RequestProcessingTime>
         </OperationRequest>
         <Items>
           <Request>
            <IsValid>True</IsValid>
            <ItemLookupRequest>
              <IdType>ASIN</IdType>
              <MerchantId>Deprecated</MerchantId>
              <ItemId>B008M4TB9C</ItemId>
              <ResponseGroup>Variations</ResponseGroup>
              <VariationPage>All</VariationPage>
            </ItemLookupRequest>
          </Request>
          <Item>
            <ASIN>B008M4TB9C</ASIN>
            <ParentASIN>B008M4TB9C</ParentASIN>  
            <VariationSummary>
              <LowestPrice>
                <Amount>49500</Amount>
                <CurrencyCode>USD</CurrencyCode>
                <FormattedPrice>$495.00</FormattedPrice>
              </LowestPrice>
              <HighestPrice>
                <Amount>49500</Amount>
                <CurrencyCode>USD</CurrencyCode>
                <FormattedPrice>$495.00</FormattedPrice>
              </HighestPrice>
            </VariationSummary>  
            <Variations>
                  ...
              <Item>
                <ASIN>B007HQYIBW</ASIN>
                <ParentASIN>B008M4TB9C</ParentASIN>
                   ...
                <ImageSets>
                   ...
                </ImageSets>
                <ItemAttributes>
                    ....
                </ItemAttributes>
                <VariationAttributes>
                  <VariationAttribute>
                    <Name>Color</Name>
                    <Value>Black</Value>
                  </VariationAttribute>
                  <VariationAttribute>
                    <Name>Size</Name>
                    <Value>6 B(M) US</Value>
                  </VariationAttribute>
                </VariationAttributes>
                <Offers>
                  <Offer>
                    <Merchant>
                      <Name>Amazon.com</Name>
                    </Merchant>
                    <OfferAttributes>
                     <Condition>New</Condition>
                    </OfferAttributes>
                    <OfferListing>
                      <OfferListingId>xxxxxxxxxx</OfferListingId>
                      <Price>
                        <Amount>49500</Amount>
                        <CurrencyCode>USD</CurrencyCode>
                        <FormattedPrice>$495.00</FormattedPrice>
                      </Price>
                      <Availability>Usually ships in 24 hours</Availability>
                      <AvailabilityAttributes>
                       <AvailabilityType>now</AvailabilityType>
                       <MinimumHours>0</MinimumHours>
                       <MaximumHours>0</MaximumHours>
                      </AvailabilityAttributes>
                    <IsEligibleForSuperSaverShipping>1</IsEligibleForSuperSaverShipping>
                    </OfferListing>
                  </Offer>
                </Offers>
              </Item>
          </Variations>
        </Item>
         ...
       </Items>
      </ItemLookupResponse>
     </env:Body>
   </env:Envelope>


来源:https://stackoverflow.com/questions/12923080/why-is-itemlookup-not-returning-any-price-information-even-when-requesting-all-3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!