2016-09-21 88 views
0

我试图只更新一个项目的描述。亚马逊MWS API的PartialUpdate需要所有XML元素

这是我的要求:

<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amznenvelope.xsd"> 
        <Header> 
         <DocumentVersion>1.01</DocumentVersion> 
         <MerchantIdentifier>ABCDEFGH</MerchantIdentifier> 
        </Header> 
    <MessageType>Product</MessageType> 
      <PurgeAndReplace>false</PurgeAndReplace> 
        <Message> 
         <MessageID>1</MessageID> 
         <OperationType>PartialUpdate</OperationType> 
         <Product> 
          <SKU>my_sku</SKU> 
          <StandardProductID> 
           <Type>ASIN</Type> 
           <Value>B009XXXXX</Value> 
          </StandardProductID> 
          <Condition> 
           <ConditionType>New</ConditionType> 
           <ConditionNote>New</ConditionNote> 
          </Condition> 
          <Description>My Description</Description> 
         </Product> 
        </Message> 
    </AmazonEnvelope> 

亚马逊的回应:

   <DocumentVersion>1.02</DocumentVersion> 
       <MerchantIdentifier>M_MyCompany</MerchantIdentifier> 
     </Header> 
     <MessageType>ProcessingReport</MessageType> 
     <Message> 
       <MessageID>1</MessageID> 
       <ProcessingReport> 
         <DocumentTransactionID>5551401111</DocumentTransactionID> 
         <StatusCode>Complete</StatusCode> 
         <ProcessingSummary> 
           <MessagesProcessed>1</MessagesProcessed> 
           <MessagesSuccessful>0</MessagesSuccessful> 
           <MessagesWithError>1</MessagesWithError> 
           <MessagesWithWarning>0</MessagesWithWarning> 
         </ProcessingSummary> 
         <Result> 
           <MessageID>1</MessageID> 
           <ResultCode>Error</ResultCode> 
           <ResultMessageCode>5000</ResultMessageCode> 
           <ResultDescription>XML Parsing Error at Line 20, Column 33: cvc-complex-type.2.4.a: Invalid content was found starting with element &apos;Description&apos;. One of &apos;{Rebate, ItemPackageQuantity, NumberOfItems, LiquidVolume, DescriptionData, PromoTag, DiscoveryData, ProductData, ShippedByFreight, EnhancedImageURL, Amazon-Vendor-Only, Amazon-Only, RegisteredParameter}&apos; is expected.</ResultDescription> 
           <AdditionalInfo> 
             <SKU>my_sku</SKU> 
           </AdditionalInfo> 
         </Result> 
       </ProcessingReport> 

这似乎是说,我需要提供所有的元素?尽管我只是想更新描述。

回答

1

响应告诉你所有的字段,可能出现在它发现“描述”的地方。进行部分更新时不必包含所有信息。所需的最小数据是SKU和DescriptionData/Title。

的问题是,说明已经走了DescriptionData标签和标题内是必需的,象下面这样:

<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amznenvelope.xsd"> 
       <Header> 
        <DocumentVersion>1.01</DocumentVersion> 
        <MerchantIdentifier>ABCDEFGH</MerchantIdentifier> 
       </Header> 
<MessageType>Product</MessageType> 
     <PurgeAndReplace>false</PurgeAndReplace> 
       <Message> 
        <MessageID>1</MessageID> 
        <OperationType>PartialUpdate</OperationType> 
        <Product> 
         <SKU>my_sku</SKU> 
         <StandardProductID> 
          <Type>ASIN</Type> 
          <Value>B009XXXXX</Value> 
         </StandardProductID> 
         <Condition> 
          <ConditionType>New</ConditionType> 
         </Condition> 
         <DescriptionData> 
          <Title>Title should go here. It is required.</Title> 
          <Description>My Description</Description> 
         </DescriptionData> 
        </Product> 
       </Message> 
</AmazonEnvelope>