Creating an Auction site using MS Commerce Server

In this article i will abstractly describe howto  create an auction site using microsoft commerce server.

Either you look at the Cs2009 RtmSamples or to other sample codes of MSCS you will see that product is added to the shopping cart with its price. However when  Total.pcf and Basket.pcf pipelines are run the catalogQueryInfo pipeline component will try to get the latest price from the catalog system. There are two ways to achieve this:

1) We need to delete this component and write a pipeline component that goes and retreves the product information from catalog system, but the price from a different source, let’s call it auction system. We will try to look at how to create a basic  auction system in MSCS later in this article.

2) As an alternative to method 1, we can  override the price property after the execution of the QueryCatalogInfo, RequiredProdInfo, and Microsoft.CommerceServer.Inventory.CheckInventory  pipeline components.

Commerce Server Basket Pipeline Components

How to  Create a Basic Auction System?

Profile  system can be used to create any kind of business entities that will be used together with the other commerce subsystems such as marketing, orders, … etc. Here in our case we can create Auction and AuctionBids entities. Let’s briefly describe the functionalities of those entities.

Auction Entity This is the main entity that will store the begin-end date, max, min prices, and bid increase steps. Auction owner, status and winner of the auction.

AuctionBid Entity This entity will store the reference to the auction entity, bidder user id, bid, and date.

According to the info on the Auction entity, the code will chose the most appropriate bid from the AuctionBid entity and will give the permission to buy that item from the winner bid price.

Currently there is no code to share but to give you an overview  howto implement such a scnerio this post can be a good starting point.

Please have a look at articles about how to extend the profile system. Also following article is worth to have a look at: