For full functionality of this site it is necessary to enable JavaScript.
Here are the instructions how to enable JavaScript in your web browser.

Knowledge base

Find the answer to your question

Advanced Search PView

Search terms
Search Type
Product
Category
Language
Format
SDK
Sort by
Direction

C#.NET code sample to call ProductMetadataService using .NET framework

  • Answer ID 2027
  • Published 03/08/2012 02:00 PM
  • Updated 10/20/2013 06:42 AM
  • Permalink https://ebaydts.com/eBayKBDetails?KBid=2027

How to consume and use ProductMetadataService using .NET framework


  1. Add a web reference to the ProductMetadataService WSDL
        http://developer.ebay.com/webservices/product-metadata/latest/ProductMetadataService.wsdl
  2. Create a class that derives from ProductMetadataService class. For example, “CustomProductService.cs”.
    Override the GetWebRequest method and set the HTTP request headers such as protocol, operationName, serviceName, securityAppName.
  3. Create an object for the required request type. For example,
       
    GetProductSearchValuesBulkRequest request = new GetProductSearchValuesBulkRequest();  
  4. Provide value for the required properties.
       
    request.categoryId = "33707";
  5. Create an object to the required response type. For example,
       
    GetCompatibilitySearchValuesBulkResponse
    response = new GetCompatibilitySearchValuesBulkResponse();
      res = service.getCompatibilitySearchValuesBulk(req);
     
  6. Explore the response object for response data.    

The following is the code sample for getCompatibilitySearchValuesBulk call using C#.NET

 

Code in the Program.cs file

using System;

using System.Collections.Generic;

using System.Text;

using ProductMetadata_Sample.com.ebay.developer;

 

namespace ProductMetadata_Sample

{

    class Program

    {

        static void Main(string[] args)

        {

            try

            {

                CustomProductService service = new CustomProductService();

                service.Url = @"http://svcs.ebay.com/services/marketplacecatalog/ProductMetadataService/v1";

 

                GetProductSearchValuesBulkRequest req = new GetProductSearchValuesBulkRequest();

                req.categoryId = "33707";

                string[] strPropertyName = {"Year", "Make", "Model" };

                req.propertyName = strPropertyName;

                // Setting Year Property filter

                PropertyValue pVal = new PropertyValue();

                pVal.propertyName = "Make";

                Value val = new Value();

                StringValue strValue = new StringValue();

                strValue.value = "Honda";

                val.Item = strValue;

                Value[] vals = { val };

                pVal.value = vals;

 

                PropertyValue[] propertyValues = { pVal };

                req.propertyFilter = propertyValues;

 

                GetCompatibilitySearchValuesBulkResponse res = new GetCompatibilitySearchValuesBulkResponse();

                res = service.getCompatibilitySearchValuesBulk(req);

 

                if (res.ack == AckValue.Success)

                {

                    Console.WriteLine("Ack: " + res.ack.ToString());                   

                    foreach (PropertyNameValue pnv in res.propertyValuesTree.childPropertyNameValue)

                    {

                        Console.WriteLine("PropertyName: " + pnv.propertyName);

                        Console.WriteLine(((StringValue)(pnv.value.Item)).value);

                    }

                }

                else

                {

                    foreach (ErrorData error in res.errorMessage)

                    {

                        Console.WriteLine("ErrorID: " + error.errorId);

                        Console.WriteLine("Message: " + error.message);

                    }

                }

            }

            catch (Exception ex)

            {

                throw ex;

            }

            Console.ReadLine();

        }

    }

}

 

 

Code in the CustomProductService.cs file

using System;

using System.Collections.Generic;

using System.Text;

using ProductMetadata_Sample.com.ebay.developer;

using System.Net;

 

namespace ProductMetadata_Sample

{

    public class CustomProductService : ProductMetadataService

    {

        protected override System.Net.WebRequest GetWebRequest(Uri uri)

        {

            try

            {

                HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(uri);

                request.Headers.Add("X-EBAY-SOA-SERVICE-NAME", "ProductMetadataService");

                request.Headers.Add("X-EBAY-SOA-OPERATION-NAME", "getCompatibilitySearchValuesBulk");

                request.Headers.Add("X-EBAY-SOA-SECURITY-APPNAME", "YOUR_APP_ID");

                request.Headers.Add("X-EBAY-SOA-GLOBAL-ID", "EBAY-MOTOR");

                return request;

            }

            catch (Exception ex)

            {

                throw ex;

            }

        }

    }

}

 

 

 

Note:

Please see the attachment for a sample console application to make getCompatibilitySearchValuesBulk call. The sample is developed using the VS 2005 and the latest ProductService WSDL http://developer.ebay.com/webservices/product-metadata/latest/ProductMetadataService.wsdl

 

 

How well did this answer your question?

Answers others found helpful

Print Email This Page Delicious Digg Facebook Reddit StumbleUpon Twitter