Posts Tagged ‘profile’

I created commerce server 2009 site using SharePoint commerce services configuration wizard. The installation went fine without any errors (nothing is written in the logs). When I tried to open the website, I got a wired exception. The exception says – “Exception Details: System.Runtime.InteropServices.COMException: Table does not exist”.

table does not exist - exception

After troubleshooting further, I figured out that the wizard is able to create profile entries in global profile resources (like user profile, address, etc. – you can able to see them in commerce server manager)  but the corresponding tables in the database are not created.

Solution:

  • Try to create a new commerce server website using commerce server OOB pup files (MicrosoftCommerceDefaultSiteNoData.PUP or MicrosoftCommerceDefaultSiteWithSampleData.PUP).
  • (In my case, I have another CS website running.) Extract scripts from website profile database (created in above step) and executed them in your website profile database.

That’s the fix. Now; your application started working fine without any issues.

Related Articles


If you like this post, please click on our sponsor advertisement.


We can update profile attributes either using Profile.Update() method or Profile.Update(xmldata, xmlformat) method. The second method is used when we are trying to update using xml data.

This method takes two parameters

1.     XML Data

2.     Profile XML Format

Commerce server accepts two types of xml formats. This is decide how the

1.     ElementCentric

2.     AttributeCentric

In the below example I am getting

            ProfileContext profileContext = CommerceContext.Current.ProfileSystem;

            Profile currency = profileContext.GetProfile(“GeneralInfo.currency_code”, “$”, “Currency”);

            currency["GeneralInfo.conversion_factor"].Value = 12;

            string xmlData = currency.GetXml(ProfileXmlRetrieve.SchemaAndData, ProfileXmlFormat.ElementCentric);

            currency.Update(xmlData, ProfileXmlFormat.ElementCentric);

currency.Update();

 

Note: In order to make XMLData persist in DB, you should explicitly call Update() method after calling Update(xmldata, xmlformat) method, else XMLData will not be saved to the database.

 

If your XML data contains only Profile data (not schema) then you will get following error.

Failed to update profile using specified XML”.

Related Articles


If you like this post, please click on our sponsor advertisement.


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.

  1. Extend commerce server profile System to capture following details
    1. Default billing address 
    2. Default shipping address.
    3. Default Payment Method.  
    4. Default Credit/Debit card (if payment method is credit card)  
  2. In the registration form, try to accept following details from the customer
    1. Billing address
    2. Shipping address
    3. 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.

  1. Input Values expected from UI – User Id, Catalog Name, and Product Id.
  2. Retrieve commerce server context of catalog, order and profile subsystems.
  3. Create new basket.
  4. Retrieve user profile properties like address Id, credit card Id, etc.
  5. Retrieve product details from Catalog subsystem and populate into basket.
  6. Retrieve address details from profile subsystem and populate into basket.
  7. Retrieve payment details (credit card) from Order subsystem and populate into basket.
  8. Execute pipelines in the following order and then convert basket into Purchase Order.  
    1. Basket  
    2. Total  
    3. Checkout  

Click here to download Quick checkout code

Related Articles


If you like this post, please click on our sponsor advertisement.


Follow me on Google+
Add to circles

In 0 people's circles

Sign up for Newsletter