Archive for June 2008
Most of the medium and small ecommerce application support generic order process where the user has to add their products to shopping cart, manually checkout the basket, provide shipping, billing addresses and payment details. This is five page refresh process. The process will be applicable to the customer who wants to buy more products at once. Most of the customer will buy single product at a time and only few customers will perform bulk orders. To help single purchase buyers, we can implement Quick order.
Quick Order (or single click ordering) is a very useful and powerful tool and can be built for ecommerce customers and customer service representatives (CSR), who works from back office. By allowing customer to make their purchase quickly and in reduced steps will encourage them to come back and make another purchase in the future. CSR can reduce the call time with the customer if s/he can order the product in reduced steps which improves efficiency. Quick order application via the automated IVR system can provide 24×7 accesses for customer to purchase on phone. Quick order process will work well with the registered user and may/may not work with anonymous user.
Registered User:
View Product -> Click Quick Order button -> Order confirmation (if required) – > Order Display
Non-register user:
View Product -> Click Quick Order button -> Accept Billing & Shipping Address -> Accept Payment -> Order confirmation (if required) – > Order Display For quick order process, we have to do some customizations in commerce server.
- Extend commerce server profile System to capture following details
- Default billing address
- Default shipping address.
- Default Payment Method.
- Default Credit/Debit card (if payment method is credit card)
- In the registration form, try to accept following details from the customer
- Billing address
- Shipping address
- Payment details
The application can use the information available in the user profile while performing quick checkout. So, when the user clicks on quick check button on product page, the following actions should take place.
- Input Values expected from UI – User Id, Catalog Name, and Product Id.
- Retrieve commerce server context of catalog, order and profile subsystems.
- Create new basket.
- Retrieve user profile properties like address Id, credit card Id, etc.
- Retrieve product details from Catalog subsystem and populate into basket.
- Retrieve address details from profile subsystem and populate into basket.
- Retrieve payment details (credit card) from Order subsystem and populate into basket.
- Execute pipelines in the following order and then convert basket into Purchase Order.
- Basket
- Total
- Checkout
Click here to download Quick checkout code
If you like this post, please click on our sponsor advertisement.
Whenever you are trying to create a new user profile using Commerce Server SDK as shown below, it throws an error – “Object reference not set to an instance of an object”.
ProfileContext profiles= CommerceContext.Current.ProfileSystem;
You may face similar type of error when web.config is missing some of the HTTP modules which are responsible for populating commerce server context. A standard application includes following HTTP modules.
CommerceApplication
CommerceAuthentication
CommerceOrder
CommerceCatalog
CommerceProfile
CommerceExpressionEvaluator
CommerceCache
CommerceContentSelection
CommerceDataWarehouseAuthenticationModule
If you are developing commerce server site from beginning, you can refer to the following Microsoft material which describes the configuration settings of commerce server web.config application.
http://msdn.microsoft.com/en-us/library/ms960520.aspx
If you wish to know how to make it work, you need to ensure the following codes in commerce server application web.config file.
<configSections>
<sectionGroup name=”CommerceServer”>
<section name=”application” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceApplicationSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<section name=”authentication” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceAuthenticationSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<section name=”pipelines” type=”Microsoft.CommerceServer.Runtime.Configuration.CommercePipelineSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<section name=”caches” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceCacheSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<section name=”messageManager” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceMessageManagerSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<section name=”catalog” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceCatalogSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<section name=”orders” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceOrdersSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<section name=”profiles” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceProfilesSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<section name=”contentSelection” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceContentSelectionSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<section name=”commerceEvent” type=”Microsoft.CommerceServer.Runtime.Configuration.EventLoggerConfigurationHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<section name=”expressions” type=”Microsoft.CommerceServer.Runtime.Configuration.CommerceExpressionSectionHandler, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
</sectionGroup>
</configSections>
<!– COMMERCE SERVER CONFIGURATION SECTION
This signifies the beginning of the configuration of the Commerce Server .NET
Application Framework.
–>
<CommerceServer>
<application siteName=”EShop” debugLevel=”Checked”/>
</CommerceServer>
<appSettings/>
<connectionStrings/>
<system.web>
<httpModules>
<add name=”CommerceApplication” type=”Microsoft.CommerceServer.Runtime.CommerceApplicationModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<add name=”CommerceAuthentication” type=”Microsoft.CommerceServer.Runtime.CommerceAuthenticationModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<add name=”CommerceOrder” type=”Microsoft.CommerceServer.Runtime.Orders.CommerceOrderModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<add name=”CommerceCatalog” type=”Microsoft.CommerceServer.Runtime.Catalog.CommerceCatalogModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<add name=”CommerceProfile” type=”Microsoft.CommerceServer.Runtime.Profiles.CommerceProfileModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<add name=”CommerceExpressionEvaluator” type=”Microsoft.CommerceServer.Runtime.Targeting.CommerceExpressionModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<add name=”CommerceCache” type=”Microsoft.CommerceServer.Runtime.Caching.CommerceCacheModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
<add name=”CommerceContentSelection” type=”Microsoft.CommerceServer.Runtime.Targeting.CommerceContentSelectionModule, Microsoft.CommerceServer.Runtime, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″/>
</httpModules></system.web>
If you like this post, please click on our sponsor advertisement.
