2016-04-15 5 views
3

In meiner Anwendung würde Ich mag hinzufügen, Marke und MPN zu bestehenden eBay-Artikel über die API auf C#, so laufe ich Code:Wie man Marke zu bestehendem eBay-Artikel hinzufügt?

 string eCommerceID = (dr["eCommerceID"] ?? "").ToString().Trim(); 
     string upc = (dr["UPC"] ?? "").ToString().Trim(); 
     string manufacturerName = (dr["ManufacturerName"] ?? "").ToString().Trim(); 
     string brandMPN = (dr["BrandMPN"] ?? "").ToString().Trim(); 

     ReviseItemRequestType reviseItemRequestType = new ReviseItemRequestType(); 
     reviseItemRequestType.Version = version; 
     reviseItemRequestType.Item = new ItemType(); 
     reviseItemRequestType.Item.ItemID = eCommerceID; 
     reviseItemRequestType.Item.ProductListingDetails = new ProductListingDetailsType(); 
     reviseItemRequestType.Item.ProductListingDetails.UPC = upc; 

     reviseItemRequestType.Item.ProductListingDetails.BrandMPN = new BrandMPNType(); 
     reviseItemRequestType.Item.ProductListingDetails.BrandMPN.Brand = manufacturerName; 
     reviseItemRequestType.Item.ProductListingDetails.BrandMPN.MPN = brandMPN; 

     ReviseItemResponseType reviseItemResponseType = ebayService.ReviseItem(reviseItemRequestType); 

aber wenn ich diesen Code ausführen, gibt eBay Fehler:

" Die markenspezifische Marke fehlt. Fügen Sie zu dieser Anzeige Marke hinzu, geben Sie einen gültigen Wert ein und versuchen Sie es erneut. "

Was mache ich falsch?

Schätzen Sie jede Hilfe. Vielen Dank.

enter image description here

Fehler: enter image description here

Antwort

4

Da die Fehlermeldungen sagen:

The item specific Brand is missing

nicht die Item.ProductListingDetails.BrandMPN in Ihrer Anfrage anwenden. Stattdessen müssen Sie zwei Item Specifics namens Band und MPN erstellen.

<ItemSpecifics> 
    <NameValueList> 
     <Name>Brand</Name> 
     <Value>[BRAND VALUE]</Value> 
    </NameValueList> 
    <NameValueList> 
     <Name>MPN</Name> 
     <Value>[MPN VALUE]</Value> 
    </NameValueList> 
</ItemSpecifics> 
+0

es funktioniert, danke! – ihorko

3

Hier kopieren und einfügen Code-Schnipsel der C# Lösung.

ItemType itemType = new ItemType(); // = class eBay.Service.Core.Soap.ItemType 
Int32 condCodeAsInt = 1000; // upto you to derrive this from your use case. 
String myBrandValue = "Some BRAND"; 
String myMpnValue = "some MPN"; 
String myUpcValue = "Does not apply"; 

....

//if condition is "New" or "New with Details" then we need to set extra REQUIRED fields 

      if (condCodeAsInt == 1000 || condCodeAsInt == 1500) 
      { 

       //if it is "new" then remove inputted desc text completely REQUIRED 
       if (condCodeAsInt == 1000) 
       { 
        itemType.ConditionDescription = ""; 
       } 

       // set UPC value HERE, not in ItemSpecifics. 
       ProductListingDetailsType pldt = new ProductListingDetailsType(); 
       pldt.UPC = myUpcValue; 

       itemType.ProductListingDetails = pldt; 

       //init Item specifics (and set BRAND and MPN) 
       itemType.ItemSpecifics = new NameValueListTypeCollection(); 

       //brand 
       NameValueListType nvBrand = new NameValueListType(); 
       nvBrand.Name = "Brand"; 
       StringCollection brandStringCol = new StringCollection(); 
       brandStringCol.Add(myBrandValue); 
       nvBrand.Value = brandStringCol; 

       itemType.ItemSpecifics.Add(nvBrand); 

       //MPN 
       NameValueListType nvMpn = new NameValueListType(); 
       nvMpn.Name = "MPN"; 
       StringCollection mpnStringCol = new StringCollection(); 
       mpnStringCol.Add(myMpnValue); 
       nvMpn.Value = mpnStringCol; 

       itemType.ItemSpecifics.Add(nvMpn); 

      } 
Verwandte Themen