2016-01-28 28 views
5

Sto provando a creare un test di ordine per Ingram Micro e non ho ottenuto risultati.Come creare un test ordine corretto per micro integrazione Ingram?

Questa è la richiesta XML da inviare:

<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> 

Ingram Micro risposta:

<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> 

Ho cercato e la ricerca sulla risposta ErrorStatus e la Productline e non ho trovato un soluzione. grazie in anticipo

Siamo spiacenti, non v'è alcuna ingram-micro tag

risposta

2

solo guardando il IM-XML documentation sono riuscito a trovare, si hanno diversi problemi apparenti con la sezione <ProductLine> elemento del vostro esempio:

<ManufacturerPartNumber> Manufacturer Part Number - Do not specify if <SKU> or <UPC> are included

<UPC> EAN/UPC Number - Do not specify if <ManufacturerPartNumber> or <SKU> are included

<SKU> Ingram Micro product code Number - Do not specify if <ManufacturerPartNumber> or <UPC> are included

Apparentemente devi solo specificare uno dei valori dell'elemento sopra, il tuo esempio specifica i valori per SKU e UPC

<ReservedInventory> Contains reserved Inventory information. - Unless required, do not specify.

Non mi è chiaro dal mio rapido controllo della documentazione quando ciò sarebbe necessario, ma si specifica un valore per questo elemento e non vedo alcuna indicazione chiara in nessun altro esempio nell'esempio che suggerirebbe perché sarebbe essere richiesto nel tuo esempio. Quindi chiamiamo questo un problema "forse".

<ShipFromBranchAtLine>

Non ho trovato alcun riferimento a questo elemento nella documentazione, quindi è probabilmente non valido. La corrispondenza più simile a questo elemento che ho trovato era <ShipFromBranches>, che non apparteneva all'elemento <ProductLine>.

Ancora, nessun riferimento a questo che ho potuto trovare nella documentazione.

<RequestedPrice> Special Bid Price Parent : <SpecialBid>

Si hanno <RequestedPrice> come figlio diretto di ProductLine, quando dovrebbe essere all'interno di un elemento <SpecialBid>.

Quindi, con tutto quanto sopra preso in considerazione, ho commentato le parti che sembravano sbagliato (o potenzialmente sbagliato, per il nostro forse) in questo modo:

<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> 

Se solo tirato quelle parti out (supponendo nessuno di loro dovrebbe essere in là) e impostare loro di svuotare elementi, potrebbe essere simile:

<ProductLine> 
     <SKU>NV9159</SKU> 
     <Quantity>1</Quantity> 
     <CustomerLineNumber/> 
    </ProductLine> 

Infine, in riferimento diretto all'errore che si stanno ottenendo indietro:

One Productline can not have multiple parts in it when ShowDetail='2'

Suppongo che ciò sia dovuto direttamente all'impostazione di un valore per entrambi <SKU> e , che potrebbe confondere il sistema nel pensare che si stia tentando di includere "più parti" (ad esempio due codici di parte diversi che potrebbero essere per due parti reali diverse) quando si specifica (illegalmente) il valore per questi due elementi.

Ma anche se non fosse il caso, sembra che la cosa più semplice per cercare di fare, dato il tenore letterale di tale errore, potrebbe essere quella di provare semplicemente cambiando il valore ShowDetail elemento da:

<ShowDetail>2</ShowDetail> 

a

<ShowDetail>1</ShowDetail> 

vorrei incoraggiare fissa le altre questioni con l'elemento ProductLine invece, ma con l'errore di risposta di andare da sola, hai provato cambiando ShowDetail per vedere se questo ha fatto la differenza?

+0

Ho provato a mettere ShowDetail con 1 e 0, la risposta è stata 'ERRORE: non sono autorizzati a effettuare un ordine con i numeri di parte specificato senza ShowDetail = '2'' – miglio

+0

avevo già letto la documentazione, e sì, è molto complicato Ho contattato il supporto di ingram e non mi danno ancora la struttura XML corretta. Grazie per l'aiuto. – miglio

1

ho stava cercando di trasmettere l'impostazione del product line come questi dati:

<ProductLine> 
<SKU>TSXML3</SKU> 
<Quantity>1</Quantity> 
<CustomerLineNumber/> 
<ReservedInventory> 
    <ReserveCode>C</ReserveCode> 
    <ReserveSequence>01</ReserveSequence> 
</ReservedInventory> 
</ProductLine> 

ho avuto questa risposta:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<OrderResponse> 
    <Version>2.0</Version> 
    <TransactionHeader> 
     <SenderID>987654321</SenderID> 
     <ReceiverID>123456789</ReceiverID> 
     <ErrorStatus ErrorNumber="21340">Order Rejected</ErrorStatus> 
     <DocumentID>{584B79A8-E320-4183-A1BB-3DEE24CA673A}</DocumentID> 
     <TransactionID>54321</TransactionID> 
     <TimeStamp>2016-02-08T05:49:12</TimeStamp> 
    </TransactionHeader> 
    <OrderInfo> 
     <OrderNumbers> 
      <BranchOrderNumber></BranchOrderNumber> 
      <CustomerPO>TEST PO ONLY - DO NOT SHIP</CustomerPO> 
      <ShipToAttention>Mrs Jones</ShipToAttention> 
      <ThirdPartyFreightAccount></ThirdPartyFreightAccount> 
      <ShipToAddress1></ShipToAddress1> 
      <ShipToAddress2></ShipToAddress2> 
      <ShipToCity></ShipToCity> 
      <ShipToProvince></ShipToProvince> 
      <ShipToPostalCode></ShipToPostalCode> 
      <AddressErrorMessage AddressErrorType=" "></AddressErrorMessage> 
      <ContractNumber></ContractNumber> 
      <OrderSuffix Suffix=""> 
       <LineInformation> 
        <ProductLine> 
         <LineError></LineError> 
         <SKU>TSXML3</SKU> 
         <UnitPrice>0.00</UnitPrice> 
         <IngramLineNumber></IngramLineNumber> 
         <CustomerLineNumber>000</CustomerLineNumber> 
         <ShipFromBranch>10</ShipFromBranch> 
         <OrderQuantity>1</OrderQuantity> 
         <AllocatedQuantity>0</AllocatedQuantity> 
         <BackOrderedQuantity>0</BackOrderedQuantity> 
         <BackOrderETADate></BackOrderETADate> 
         <PriceDerivedFlag></PriceDerivedFlag> 
         <ForeignCurrency></ForeignCurrency> 
         <FreightRate>0.00</FreightRate> 
         <TransitDays>0</TransitDays> 
         <LineBillToSuffix>000</LineBillToSuffix> 
        </ProductLine> 
        <CommentLine> 
         <CommentText>TEST PO ONLY - DO NOT SHIP</CommentText> 
         <CommentLineNumber></CommentLineNumber> 
        </CommentLine> 
       </LineInformation> 
      </OrderSuffix> 
     </OrderNumbers> 
    </OrderInfo> 
</OrderResponse> 

Spero che questo aiuto.