我正在尝试为英迈创建订单测试,但尚未实现结果。
这是要发送的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>
我一直在尝试和研究响应
ErrorStatus
和Productline
,但还没有找到解决方案。提前致谢
抱歉,没有
ingram-micro
标记 最佳答案
仅查看我能找到的IM-XML documentation,您的示例的<ProductLine>
元素部分就存在一些明显的问题:
显然,您只应指定上述元素的值之一,您的示例将指定SKU
和UPC
的值
从我的快速浏览文档中我不清楚这是何时需要的,但是您为该元素指定了一个值,并且在示例中的其他任何地方都看不到任何明确的指示,这表明了为什么需要在您的文档中示例案例。因此,我们将此称为“也许”问题。
我在文档中找不到对该元素的任何引用,因此它可能无效。与该元素最接近的匹配项是<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来看看是否有所作为?