using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Microsoft.Commerce.Common.MessageBuilders;
using Microsoft.Commerce.Contracts;
using Microsoft.Commerce.Contracts.Messages;
using Microsoft.CommerceServer.Catalog;
using Microsoft.CommerceServer.Runtime;

namespace ASPNet3346
{
    public partial class GetAProduct : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void btnCS2007_Click(object sender, EventArgs e)
        {
            GetCatalog(CommerceContext.Current.CatalogSystem, "Adventure Works Catalog");
        }
        private void GetCatalog(CatalogContext context, string catalogName)
        {
            //Get the catalog with the name specified in catalogName.
            // Return the catalog data in English, as specified by "en-US");
            ProductCatalog productCatalog = (ProductCatalog)context.GetCatalog(catalogName, "en-US");
            Response.Write(productCatalog.Name);
            Response.Write(productCatalog.IdentifyingProductProperty);
        }

        protected void btnCS2009_Click(object sender, EventArgs e)
        {
            var productQuery = new CommerceQuery("Product");

            productQuery.SearchCriteria.Model.Properties["CatalogId"] = "Adventure Works Catalog";
            productQuery.SearchCriteria.Model.Id = "AW200-12";

            productQuery.Model.Properties.Add("Id");
            productQuery.Model.Properties.Add("DisplayName");
            productQuery.Model.Properties.Add("Description");
            productQuery.Model.Properties.Add("ListPrice");

            {
                var queryVariants = new CommerceQueryRelatedItem("Variants", "Variant");

                queryVariants.SearchCriteria.SortProperties = new List();
                queryVariants.SearchCriteria.SortProperties.Add(new CommerceSortProperty("Variant", "ProductColor", SortDirection.Ascending));
                queryVariants.SearchCriteria.FirstItemIndex = 0;
                queryVariants.SearchCriteria.ReturnTotalItemCount = true;

                queryVariants.Model.Properties.Add("Id");
                queryVariants.Model.Properties.Add("VariantCode");
                queryVariants.Model.Properties.Add("ProductColor");

                productQuery.RelatedOperations.Add(queryVariants);
            }

            CommerceResponse response = CommerceFoundationServiceAgent.Execute(productQuery);

            // Handle Responses
            CommerceQueryOperationResponse queryResponse = response.OperationResponses.Single() as CommerceQueryOperationResponse;
            CommerceEntity product = queryResponse.CommerceEntities.SingleOrDefault();
            Response.Write(product.Id);
        }
    }
}

Attached Source Code : ASPNet3346