我正在尝试为英迈创建订单测试,但尚未实现结果。

这是要发送的xml请求:

<OrderRequest>
   <Version>2.0</Version>
   <TransactionHeader>
      <SenderID>123456789</SenderID>
      <ReceiverID>987654321</ReceiverID>
      <CountryCode>MD</CountryCode>
      <LoginID>ingram_login</LoginID>
      <Password>ingram_password</Password>
      <TransactionID>54321</TransactionID>
   </TransactionHeader>
   <OrderHeaderInformation>
      <BillToSuffix />
      <AddressingInformation>
         <CustomerPO>TEST PO ONLY - DO NOT SHIP</CustomerPO>
         <ShipToAttention>Mrs Jones</ShipToAttention>
         <EndUserPO>EndUserPO_1</EndUserPO>
         <ShipTo>
            <Address>
               <ShipToAddress1>Red House Company</ShipToAddress1>
               <ShipToAddress2>1730 105TH ST</ShipToAddress2>
               <ShipToAddress3/>
               <ShipToCity>NEW RICHMOND</ShipToCity>
               <ShipToProvince>WI</ShipToProvince>
               <ShipToPostalCode>54017</ShipToPostalCode>
            </Address>
         </ShipTo>
      </AddressingInformation>
      <ProcessingOptions>
         <CarrierCode>F2</CarrierCode>
         <AutoRelease>H</AutoRelease>
         <ThirdPartyFreightAccount/>
         <KillOrderAfterLineError>N</KillOrderAfterLineError>
         <ShipmentOptions>
            <BackOrderFlag>Y</BackOrderFlag>
            <SplitShipmentFlag>N</SplitShipmentFlag>
            <SplitLine>N</SplitLine>
              <ShipFromBranches>10</ShipFromBranches>
            <DeliveryDate>20090901</DeliveryDate>
         </ShipmentOptions>
      </ProcessingOptions>
      <DynamicMessage>
         <MessageLines>Deliver to Mrs Jones</MessageLines>
      </DynamicMessage>
   </OrderHeaderInformation>
   <OrderLineInformation>
      <ProductLine>
         <SKU>TSXML3</SKU>
         <Quantity>1</Quantity>
         <CustomerLineNumber/>
         <ReservedInventory>
            <ReserveCode>C</ReserveCode>
             <ReserveSequence>01</ReserveSequence>
         </ReservedInventory>
         <CustomerPartNumber/>
         <UPC/>
         <ManufacturerPartNumber/>
         <ShipFromBranchAtLine>10</ShipFromBranchAtLine>
      </ProductLine>
      <CommentLine>
         <CommentText>TEST PO ONLY - DO NOT SHIP</CommentText>
      </CommentLine>
   </OrderLineInformation>
   <ShowDetail>1</ShowDetail>
</OrderRequest>

英迈微响应:
<OrderResponse>
    <Version>2.0</Version>
    <TransactionHeader>
        <SenderID>987654321</SenderID>
        <ReceiverID>123456789</ReceiverID>
        <ErrorStatus ErrorNumber="20196">
ERROR: One Productline can not have multiple parts in it when ShowDetail='2'
</ErrorStatus>
        <DocumentID>{5535EC2F-DB51-4D35-B492-6425A0B9F62D}</DocumentID>
        <TransactionID>54321</TransactionID>
        <TimeStamp>2016-01-27T11:45:19</TimeStamp>
    </TransactionHeader>
</OrderResponse>

我一直在尝试和研究响应ErrorStatusProductline,但还没有找到解决方案。
提前致谢

抱歉,没有ingram-micro标记

最佳答案

仅查看我能找到的IM-XML documentation,您的示例的<ProductLine>元素部分就存在一些明显的问题:



显然,您只应指定上述元素的值之一,您的示例将指定SKUUPC的值



从我的快速浏览文档中我不清楚这是何时需要的,但是您为该元素指定了一个值,并且在示例中的其他任何地方都看不到任何明确的指示,这表明了为什么需要在您的文档中示例案例。因此,我们将此称为“也许”问题。



我在文档中找不到对该元素的任何引用,因此它可能无效。与该元素最接近的匹配项是<ShipFromBranches>,它不属于<ProductLine>元素。



同样,在文档中找不到对此的引用。



<RequestedPrice>应该在ProductLine元素内时,您将<SpecialBid>作为<SKU>的直接子代。

因此,考虑到上述所有因素后,我对看起来似乎错误的部分(或可能对我们来说可能是错误的部分)进行了注释,如下所示:

    <ProductLine>
        <SKU>NV9159</SKU>
        <Quantity>1</Quantity>
        <CustomerLineNumber/>
        <!-- ResvervedInventory : Unless required, do not specify
        <ReservedInventory>
            <ReserveCode>C</ReserveCode>
            <ReserveSequence>01</ReserveSequence>
        </ReservedInventory>
        -->
        <!-- CustomerPartNumber element not defined in spec.
        <CustomerPartNumber/>
        -->
        <!-- UPC : Do not specify if SKU included
        <UPC>SP-RACKTRAY</UPC>
         -->
        <!-- ManufacturerPartNumber : Do not specify if SKU included
        <ManufacturerPartNumber/>
         -->
        <!-- ShipFromBranchAtLine element not defined in spec.
        <ShipFromBranchAtLine>10</ShipFromBranchAtLine>
        -->
        <!-- RequestedPrice : parent = SpecialBid
        <RequestedPrice>163.36</RequestedPrice>
        -->
    </ProductLine>

如果我们只是将这些部分拉出来(假设它们都不应放在其中)并将它们设置为空元素,则可能类似于:
    <ProductLine>
        <SKU>NV9159</SKU>
        <Quantity>1</Quantity>
        <CustomerLineNumber/>
    </ProductLine>

最后,直接引用错误您将得到:



我认为这直接是由于您同时为<UPC>ShowDetail设置了一个值,这可能会使系统误认为您试图包含“多个部件”(例如,两个不同的部件代码可能适用于两个不同的实际部件) )时(非法)指定这两个元素的值。

但是,即使不是这种情况,考虑到该错误的实际措辞,似乎似乎最容易尝试做的事情可能就是尝试简单地将ProductLine元素的值更改为:
<ShowDetail>2</ShowDetail>


<ShowDetail>1</ShowDetail>

我鼓励改用ShowDetail元素来解决其他问题,但是由于响应错误一个人解决,您是否尝试过更改ojit_code来看看是否有所作为?

10-07 19:31