Saturday, February 25, 2012

Using Contracts for eCommerce in Websphere Commerce

As per the request from one of the comments on the blog, this is a high level view on contracts using Websphere commerce and by no means a complete coverage of contracts as it's such a vast topic.

Contracts: This is one of the most interesting concepts when dealing with both B2B and B2C eCommerce systems. Every store published out of the box is associated with a default contract. Lot of clients use contracts on B2C site, if the requirements for a B2C site include using contracts or employment purchase programs using contracts. It is a best practice to use EliteStoreFront or if you are still using V 6.0 (Advance B2B).

Why are contracts required? These are good reasons.
1. If you want to use the same offer price lists as your regular customers but provide a percentage or fixed amount off of the same prices to a subset of customers such as Employees or Students.
2. If you want include or exclude a set of categories or products to a different set of customers.
3. In the case of B2B systems, contracts allow creating separate pricing tiers for different set of customers.
4. Contracts can extend existing contracts or new contracts to provide multi-tiered pricing.
5. You can also have separate shipping prices per contract.
6. Payment methods can also be setup per contract.

How do you create contracts? Essentials for creating a contract.

1. Create organization--using orgadmin console.
2. Create Account --(Accelerator, sales-> accounts)
3. Create Contract --(Accelerator, sales->accounts->new contract)

Important concepts related to contracts:
Catalog Filter : Tooling to provide pricing and catalog filters.
Pricing: (Pricing percentage off/fixed amount off) can be used to increment or decrement the default offer price for a subset of customers.
This is provided in Accelerator and Management center. The one is management center is not restricted to a store and can be shared across stores and contracts.
Include/Exclude Catalog: Allows to include exclude catalog specific set of catalog entries by specifying which categories,catalog entries, attribute dictionary attributes.


  1. Hi Raj,

    Stumbled on your blog searching for something and found it very interesting. Meanwhile, is it possible to allow guest users to browse in Elite store? It is a requirement in my project and the link says Elite store supports guest users. Can you let me know how I can do this since the Elite starter store that I published opens up the Login page as soon as I hit the store URL with not other links.

  2. I haven't tried this myself but this should work.
    Add a policy if there is not one for
    GuestsExecuteUserSelfRegistrationCommandsOnOrganizationResource in ACPOLICY and subscribe the parent organization to the following policy groups of GuestShoppingEnabledPolicyGroup and B2CPolicyGroup

  3. Hi Raj,

    can we implement ship to or address book restriction using contract. for an example product x cannot be shipping to address y.. any thoughts ?

  4. how we can create multiple category pages with different design templates as per the number of products corresponding to that category.

  5. DISPCGPREL provides the functionality to use multiple templates for category pages. This tables provides a way to have a new template for a single or a group of CATGROUP_ID's. There is a pageName column where the path of the new JSP template, can be defined.

  6. If we need to change the template of category pages on the basis of no. of products . Then we need to write a logic or any thing else(OOB) can help.

  7. How can I have a store with multiple currency? Say A store having two buyer organization (Say org A having buyer A and Org B having buyer B). The buyer A should get the price in dollar (Say 100 dollar) And buyer B should get the same product in euro (Say 10 Dollar).
    I don't want the convertion to happen.

  8. Commerce supports multiple currencies per store
    and as you mentioned there is a currency conversion table that supports the conversion and a default currency for store. I understand your question but i haven't implemented your requirement, where you want is multiple currencies just for conversion but too always use a default currency.
    Currency data model:
    Please do let us know about your solution, if you have already implemented it.

  9. Hello Raj,
    I have a commerce store that is doing business in multiple countries. The price is fixed at local currency so I do not consider to use currency converter. For example, a product with SKU=abc the price is 13.5 in US currency and is 10 in Euro. What do you suggested, multiple stores with one contract or multiple contracts of one store? The issue I am asking is how to store price in local currency so that pricing is rendered correctly.


    1. Hi,
      I Know i am late. but still posting as it might help someone.
      You can do this by creating a price list. The price list will apply to the catalog entries. to get more details you can refer offerprice and offer tables. In offerprice table contains currency and offer_id as a usnique key so that you can have multiple currency for the same catalog depending upon the store or location,

      You have to create a contract and subscribe to a Price list there.


  10. The internet has created endless opportunities for businesses and many have turned to the web to make contact with their target markets. Building an eCommerce is of course bound to be a great success, but it is not always as easy as it might sound. top ecommerce sites