cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Condition Grading for Trading Cards New Schema - Yet No Support For This in SDK?

Hello I am trying to update my .NET software to support the new  Condition Grading for trading cards but the the .NET SDK ImageType does not contain the "ConditionDescriptor" field required to do this.

 

I use my .NET software to take images of  TCG cards and post them to my store. This saves me incredible amounts of time as my software also does an OCR routine that reads the card, gets card information, sets the title , does a price lookup on TCG player and fills out basically all fields programmatically. 

 

The current SDK does not support this new grading requirement from eBay. There needs to be a ConditionDescriptor for all Card listings next week but there is no support for this in software.

 

I'm now worried my application I've developed over years will be unusable due to this requirement that is not supported by the eBay SDK . This will really mess with my business listing throughput if so. I'm not sure why eBay would set this deadline requirement and not roll out any support for the SDK prior.

 

Any thoughts, suggestions, ideas would be appreciated. Not sure if I need to reach out and pay for premium support for this?

 

 

 

 

 

Message 1 of 3
latest reply
1 BEST ANSWER

Accepted Solutions

Condition Grading for Trading Cards New Schema - Yet No Support For This in SDK?

To anyone out there who may need help on this, my solution for now is a workaround for the lack of the ConditionDescriptor in the eBay SDK.

 

Instead of using the SDK to make the calls, I created a RESTful client to and manually make the AddFixedPriceItem call and add the condition descriptor to the XML document I build manually.

 

 <PrimaryCategory>

<CategoryID>183454</CategoryID>

</PrimaryCategory>

<ConditionDescriptors>

<ConditionDescriptor>

<Name>40001</Name>

<Value>"+ condition +"</Value>

</ConditionDescriptor>

</ConditionDescriptors>

<ConditionID>4000</ConditionID>

 

 

Below is sample of my code call, hopefully this info can assist someone.

 

var client = new RestClient("https://api.ebay.com/ws/api.dll");
            var request = new RestRequest(Method.POST);
            request.AddHeader("X-EBAY-API-SITEID", "0");
            request.AddHeader("X-EBAY-API-COMPATIBILITY-LEVEL", "967");
            request.AddHeader("X-EBAY-API-DETAIL-LEVEL", "0");
            request.AddHeader("X-EBAY-API-APP-NAME", "YOUR INFO HERE");
            request.AddHeader("X-EBAY-API-DEV-NAME", "YOUR INFO HERE");
            request.AddHeader("X-EBAY-API-CERT-NAME", "YOUR INFO HERE");
            request.AddHeader("X-EBAY-API-CALL-NAME", "AddFixedPriceItem");
            request.AddHeader("X-EBAY-API-IAF-TOKEN", "YOUR INFO HERE");

            string condition = "40010";

            switch (cb_cond2.SelectedIndex)
            {
                case 0: condition = "400010";
                    break;
                case 1:
                    condition = "400015";
                    break;
                case 2:
                    condition = "400016";
                    break;
                case 3:
                    condition = "400017";
                    break;

            }

            string urlPre = "<PictureURL>";
            string urlSuf = "</PictureURL>";

            StringBuilder urlSB = new StringBuilder();

            foreach (string surl in URLList)
            {
                urlSB.Append(urlPre + surl + urlSuf);
            }

            string xmlRequestBody = "<?xml version=\"1.0\" encoding=\"utf-8\"?><AddFixedPriceItemRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\"> <WarningLevel>High</WarningLevel> <Item> <Title>"+ TxtTitle.Text +"</Title>  <Description>" + TxtDescription.Text + "</Description> <PrimaryCategory>  <CategoryID>183454</CategoryID>  </PrimaryCategory>  <StartPrice>" + TxtStartPrice.Text +"</StartPrice>  <ConditionDescriptors>   <ConditionDescriptor> <Name>40001</Name> <Value>"+ condition +"</Value>  </ConditionDescriptor> </ConditionDescriptors>  <ConditionID>4000</ConditionID>   <Country>US</Country>  <Currency>USD</Currency> <DispatchTimeMax>1</DispatchTimeMax>   <ListingDuration>GTC</ListingDuration> <ListingType>FixedPriceItem</ListingType> <PictureDetails>" + urlSB.ToString() +"</PictureDetails>  <PostalCode>YOUR INFO</PostalCode>  <ItemSpecifics> <NameValueList> <Name>Game</Name> <Value>"+ CBgame.Text +"</Value> </NameValueList> <NameValueList> <Name>Graded</Name> <Value>No</Value> </NameValueList> </ItemSpecifics> <Quantity>"+ TxtQuantity.Text +"</Quantity> <ReturnPolicy>  <ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption> <RefundOption>MoneyBack</RefundOption> <ReturnsWithinOption>Days_30</ReturnsWithinOption> <ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption> </ReturnPolicy> <ShippingDetails> <ShippingType>Flat</ShippingType> <ShippingServiceOptions>  <ShippingServicePriority>1</ShippingServicePriority> <ShippingService>US_eBayStandardEnvelope</ShippingService> <FreeShipping>true</FreeShipping> <ShippingServiceAdditionalCost currencyID=\"USD\">0.00</ShippingServiceAdditionalCost> </ShippingServiceOptions> </ShippingDetails> <Site>US</Site> </Item> </AddFixedPriceItemRequest >"; 

            
            request.AddParameter("text/xml", xmlRequestBody,ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);
            string s = response.Content.ToString();
           

 

View Best Answer in original post

Message 2 of 3
latest reply
2 REPLIES 2

Condition Grading for Trading Cards New Schema - Yet No Support For This in SDK?

To anyone out there who may need help on this, my solution for now is a workaround for the lack of the ConditionDescriptor in the eBay SDK.

 

Instead of using the SDK to make the calls, I created a RESTful client to and manually make the AddFixedPriceItem call and add the condition descriptor to the XML document I build manually.

 

 <PrimaryCategory>

<CategoryID>183454</CategoryID>

</PrimaryCategory>

<ConditionDescriptors>

<ConditionDescriptor>

<Name>40001</Name>

<Value>"+ condition +"</Value>

</ConditionDescriptor>

</ConditionDescriptors>

<ConditionID>4000</ConditionID>

 

 

Below is sample of my code call, hopefully this info can assist someone.

 

var client = new RestClient("https://api.ebay.com/ws/api.dll");
            var request = new RestRequest(Method.POST);
            request.AddHeader("X-EBAY-API-SITEID", "0");
            request.AddHeader("X-EBAY-API-COMPATIBILITY-LEVEL", "967");
            request.AddHeader("X-EBAY-API-DETAIL-LEVEL", "0");
            request.AddHeader("X-EBAY-API-APP-NAME", "YOUR INFO HERE");
            request.AddHeader("X-EBAY-API-DEV-NAME", "YOUR INFO HERE");
            request.AddHeader("X-EBAY-API-CERT-NAME", "YOUR INFO HERE");
            request.AddHeader("X-EBAY-API-CALL-NAME", "AddFixedPriceItem");
            request.AddHeader("X-EBAY-API-IAF-TOKEN", "YOUR INFO HERE");

            string condition = "40010";

            switch (cb_cond2.SelectedIndex)
            {
                case 0: condition = "400010";
                    break;
                case 1:
                    condition = "400015";
                    break;
                case 2:
                    condition = "400016";
                    break;
                case 3:
                    condition = "400017";
                    break;

            }

            string urlPre = "<PictureURL>";
            string urlSuf = "</PictureURL>";

            StringBuilder urlSB = new StringBuilder();

            foreach (string surl in URLList)
            {
                urlSB.Append(urlPre + surl + urlSuf);
            }

            string xmlRequestBody = "<?xml version=\"1.0\" encoding=\"utf-8\"?><AddFixedPriceItemRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\"> <WarningLevel>High</WarningLevel> <Item> <Title>"+ TxtTitle.Text +"</Title>  <Description>" + TxtDescription.Text + "</Description> <PrimaryCategory>  <CategoryID>183454</CategoryID>  </PrimaryCategory>  <StartPrice>" + TxtStartPrice.Text +"</StartPrice>  <ConditionDescriptors>   <ConditionDescriptor> <Name>40001</Name> <Value>"+ condition +"</Value>  </ConditionDescriptor> </ConditionDescriptors>  <ConditionID>4000</ConditionID>   <Country>US</Country>  <Currency>USD</Currency> <DispatchTimeMax>1</DispatchTimeMax>   <ListingDuration>GTC</ListingDuration> <ListingType>FixedPriceItem</ListingType> <PictureDetails>" + urlSB.ToString() +"</PictureDetails>  <PostalCode>YOUR INFO</PostalCode>  <ItemSpecifics> <NameValueList> <Name>Game</Name> <Value>"+ CBgame.Text +"</Value> </NameValueList> <NameValueList> <Name>Graded</Name> <Value>No</Value> </NameValueList> </ItemSpecifics> <Quantity>"+ TxtQuantity.Text +"</Quantity> <ReturnPolicy>  <ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption> <RefundOption>MoneyBack</RefundOption> <ReturnsWithinOption>Days_30</ReturnsWithinOption> <ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption> </ReturnPolicy> <ShippingDetails> <ShippingType>Flat</ShippingType> <ShippingServiceOptions>  <ShippingServicePriority>1</ShippingServicePriority> <ShippingService>US_eBayStandardEnvelope</ShippingService> <FreeShipping>true</FreeShipping> <ShippingServiceAdditionalCost currencyID=\"USD\">0.00</ShippingServiceAdditionalCost> </ShippingServiceOptions> </ShippingDetails> <Site>US</Site> </Item> </AddFixedPriceItemRequest >"; 

            
            request.AddParameter("text/xml", xmlRequestBody,ParameterType.RequestBody);
            IRestResponse response = client.Execute(request);
            string s = response.Content.ToString();
           

 

Message 2 of 3
latest reply

Condition Grading for Trading Cards New Schema - Yet No Support For This in SDK?

Thanks for this. I was considering this approach, but I haven't begun implementation yet.

Message 3 of 3
latest reply