Thursday, November 17, 2011

Know about .keyring

.keyring
If you want to clear the existing password of SVN from RAD. then delete above file from
<<Rad installation locatoin>>eclipse\configuration\org.eclipse.core.runtime location

Thanks to Uma :)

Thursday, September 8, 2011

Read about OrderTrashCan

OrderTrashCan is a feature in WCS
  • This feature is ......?.......by default in v7
  • This feature is enabled by default in v6
  • If the OrderTrashCan feature is disabled, when a user deletes an order item or requisition list item the table rows representing those items are removed from the database.
  • If enabled, these rows are updated to belong to the trashcan. .
How to enable?
  • Edit the wc-server.xml with below entry
  • TrashCanEnabled="true"/>
OrderTrashCanClear
  • You can clear the trashcan by running the OrderTrashCanClear scheduled job which will delete the rows, or by using the Database Clean up utility

All about Schedules :

Tables

#SCHCONFIG
This table contains all scheduled job entries.
scchost -the host name of the instance on which the scheduled job will be run
sccpathinfo-the command name
sccquery-query string for the scheduled command.

#SCHACTIVE
The list containing what job will need to be run and the time when the job should execute
schactive.scsjobnbr =schconfig.sccjobrefnum

#SCHSTATUS
This table is a log of the status of scheduled jobs
schstatus.scsjobnbr =schconfig.sccjobrefnum
scsstate:state of the scheduled job.
scsresult: result of job: success or fail.

#SCHERRORLOG
This table contains the exception information when a job fails to execute successfully.
#SCHORDERS
This table contains the entries for scheduled orders

#SCHBRDCST
This table is used to log the status of broadcast commands for each of the clones
schbrdcst.scsjobnbr =schconfig.sccjobrefnum

#SCHCMD
The URLsthat can be used as a scheduled job by a store. This is for the Scheduler menu in the Administration Console.
supporting tables:CHKARRANG/CHKCMD

Friday, August 19, 2011

All about Registry in WCS

How to create your own Registry
 -Create a classfile which implements com.ibm.commerce.registry.Registry
 --public abstract interface Registry
 --public abstract void initialize()
 --public abstract void refresh()
What are the methods required in side the Registry
 -initialize() --call refresh method
 -refresh() --load the values

what is the  registry Entry in side the  wc-server.xml ?
<Registries>
 <registry  name="BipinRegistry" regClassName="com.xxx.BipinRegistry" />
</Registries>

How to invoke the registry from controller command
 -MyNewRegistry myregsty= MyNewRegistry (RegistryManager.singleton().getRegistry(MyNewRegistryname ));

When registry will load
 -While starting the server ,registry will initialize

If the data in the tables associated with a registry is changed, you will need to refresh that registry for the change to take effect. For example, if a new entry is added to the Struts Configuring, the UrlRegistry has to be refreshed. Otherwise, the WebSphere Commerce runtime environment will not recognize the new URL.

Most commonly using registry: URLRegistry, Promotion Regisry

Wednesday, August 17, 2011

WebSphere Commerce business models



  • Direct sales
    • Consumer direct (B2C)
    • Business to business direct (B2B)
  • Scalable direct sales
    • Extended Sites
  • Value chain
    • Demand chain
    • Supply chain

Sunday, August 7, 2011

Catalog - MasterCatalog. SalesCatalog. and all

Catalog
The catalog subsystem is a component of the WebSphere Commerce Server that provides online catalog navigation, partitioning, categorization, and associations. In addition, the catalog subsystem includes support for personalized interest lists and custom catalog display pages. The catalog subsystem contains all logic and data relevant to an online catalog, including catalog groups (or categories), catalog entries, and any associations or relationships among them

Different between product and item?
A product, however, is a group of items that exhibit the same attributes.
For example, a hammer is a product, while the 15 inch hammer with a wooden handle is an item
An item is a tangible unit of merchandise that has a specific name, part number, and price.
For example, a 15 inch hammer with a wooden handle (part number 15) is an item.
Although items do not need to be related to any product, and can exist independently in the catalog, each item should be associatedto one product to maintain a consistent view when using the Product Management tools in the WebSphere Commerce AcceleratorA parent product is not required for each item. However, this is necessary in order to use the Product Management tools.Also, pricing and discounts will not be able to default to the parent product level, meaning that all items must have their own prices and discounts,
if applicable

About Master Catalog:
The master catalog is the central location to manage your store's merchandise.
Everything you need in your store is contained within the master catalog. It is the single catalog containing all products, items, relationships, and standard prices for everything that is for sale in your store
You can share the master catalog across stores and define as many stores as needed.

About Sales Catalog
A sales catalog is a subset of the merchandise and services found in the master catalog.
A sales catalog has a flexible display structure that allows you to associate products to more than one category,to suit the requirements of your store.Sales catalogs can be used in conjunction with the master catalog and contracts to control which products display for a particular customer


Loading the catalog:
-Product Management tools in the WebSphere Commerce Accelerator
-loading utilities to mass load the catalog

Catalog entries
Catalog entries represent orderable merchandise in an online catalog. The entries typically have a name or part number, a description,one or more prices, images, and other details. A catalog entry can be a product, item, bundle, package, static kit, or dynamic kit.If necessary, you can create new catalog entry types that do not fit into one of the six existing models. More information about each type of catalog entry is available below.

Products
A product is a type of catalog entry. A product acts as a template for a group of items (or SKUs) that exhibit the same attributes. For example, a shirt is a product in your catalog. After adding attributes and attribute values to the shirt, each variation becomes an item, such as a small black shirt.

Items
An item is a tangible unit of merchandise that has a specific name, part number, and price.
For example, a small black shirt is an item while a shirt is a product. All items related to a particular product exhibit the same set of attributes and are distinguished by their attribute values.
Note: For WebSphere Commerce Accelerator users, the terms items and SKUs are considered synonymous.
When using the Product Management tools in the WebSphere Commerce Accelerator, the orderable item is called a SKU. In the WebSphere Commerce database schema, this particular type of catalog entry is called an item.

Bundles
A bundle is a collection of catalog entries to allow customers to buy multiple items at once.
For example, a bundle for a computer might be composed of a central processing unit, a monitor, a hard drive, and a CD-ROM drive. A bundle is a grouping of items, or a combination of products, items, and fully resolved packages. If you select a bundle which only contains items, the bundle is decomposed into separate orderable SKUsthat are added individually to the shopping cart. However, if you select a bundle which contains products, these products need tobe resolved into items through SKU resolution before they can be added to a shopping cart. In either case, once a bundle is decomposed and its component items are added to a shopping cart, you can modify or remove each item.

Packages
A package is an atomic collection of catalog entries. For example, a computer package might contain a specific central processing unit, monitor, and hard drive that cannot be sold separately. Similar to a product, a package has defining attributes and is a container for fully resolved packages. A fully resolved package is comparable to a SKU. A package has its own price and is an actual orderable SKU that can be added to a shopping cart.You cannot decompose or modify a package either during navigation or after the package has been placed in the shopping cart.
Note: For WebSphere Commerce Accelerator users, packages and prebuilt kits are considered synonymous. When using the Product Management tools in the WebSphere Commerce Accelerator, a package is known as a prebuilt kit.In the WebSphere Commerce database schema, this particular type of catalog entry is called a package.

Dynamic kits
A dynamic kit is a type of catalog entry which can be dynamically configured by the customer.
This configuration (or grouping) of products is based on the customer's requirements and is sold as a single unit.The components of a dynamic kit are controlled by an external product configurator through a set of predefined rules and user interaction,and supplied at order entry time. Adding a dynamic kit to an order is similar to adding a package.Like a package, the individual components of a dynamic kit cannot be modified and the entire configuration must be fulfilled as a whole.However, you may change the dynamic kit components by reconfiguring it using an external product configurator.

Static kits
A static kit is a group of products that are ordered as a unit. The information about the products contained in a static kit is predefined and controlled within WebSphere Commerce. The individual components within the order cannot be modified and must be fulfilled together.A static kit will backorder if any of its components are unavailable.A static kit is first created as a package, then configured by an administrator.

Product sets
Product sets are associated with published catalog entries.
A product set provides a mechanism to partition your catalog into logical subsets.
This partitioning allows you to show different parts of your catalog to different users.
You can create a contract and specify that the participants of the contract are only entitled to purchase products that fall into a predefined product set.WebSphere Commerce provides tools to create and manage contracts and entitlement filtering rules on the master catalog.

Attributes
Attributes are properties of products in an online store. There are two types of attributes:
--Defining attributes are properties, such as color or size. Attribute values are the property of an attribute such as a specific color
(blue or yellow) or size (medium). You must predefine attribute values before assigning them to items. Attribute values are implicitly related
to their attributes. Each possible combination of attributes and attribute values equals a new item. After creating attributes and their values,
you can update information such as name, description, and type (text, whole numbers, or decimal numbers). Defining attributes are used for SKU resolution,
where each possible combination of attributes and attribute values defines an item.

--In contrast, descriptive attributes simply provide additional descriptions. For example, some pieces of clothing should only be dry
cleaned, never washed, and a descriptive attribute can specify this dry clean only condition. Note that descriptive attributes are not
used for SKU resolution and are meant to enhance product descriptions, or to provide easy customization for your business specific information.

Attribute values
Attribute values are properties of an attribute such as a specific color (blue or yellow) or size (small, medium, or large).
You must predefine attribute values before assigning them to items. Each possible combination of defining attributes values defines an item.

Package attributes
Package attributes must be created from the attributes of the products that are contained within packages.
A package containing only items will have no package attributes.

Package attribute values
Package attribute values are the values assigned to package attributes. Package attribute values must be created from the attribute
values of the products that are contained within packages


Tables
STORECAT     -store to catalog
CATTOGRP    -catalog to group
CATGRPREL    -group to group
CATGPENREL    -group to parent
CATENTREL    -group to praent
CATENTREL    -parent to item


URLS---
StoreCatalogDisplay
TopCategoriesDisplay
CategoryDisplay
ProductDisplay

Commands--
StoreCatalogDisplayCmdImpl-
This command sets the view task that will display the Catalogs available to browse in the current Store.

TopCategoriesDisplayImpl-
This command sets the view task that will display the root Categories in a specified Catalog.

CategoryDisplayCmdImpl-
retrieves the configured display page for the specified category in the specified catalog.

ErrorMissingAttributeCmd-
This error task command is set when a Product to Item resolution fails due to missing product attributes.

ErrorProductAttributeCmd-
This error task command is set when a Product to Item resolution fails due to incorrect product attributes

ProductDisplayCmdImpl-
This command retrieves the configured Display Page for the specified CatalogEntry which will in turn be launched in order to
display information about the CatalogEntry.This command first ensures that the CatalogEntry specified by the
ProductId can be displayed in the current store, if published, and is not marked for delete.

ResolveSkuCmd-Certain catalog entries may need further processing before being added to an order.
An example is resolving a product into an item through SKU resolution, performed by the ResolveSkuCmd task command.


DataBeans--
StoreDataBean--extends StoreAccessBean ->salesCatalogs()
CatalogDataBean-extends CachedCatalogAccessBean ->getTopCategories()
CategoryDataBean-extends CachedCatalogAccessBean ->getSubCategories()
CatalogEntryDataBean-extends CachedCatalogEntryAccessBean
ProductDataBean-extends CachedProductAccessBean

Example
<wcbase:useBean id="catalog" classname="com.ibm.commerce.beans.CatalogDataBean" />


JSP
StoreCatalogDisplay.jsp
Index.jsp
    -parameters.jspf
    -nocache.jspf
TopCategoriesDisplay.jsp
    -LayoutContainerTop.jspf
        -HeaderDisplay.jspf
            -CachedHeaderDisplay
    -CachedTopCategoriesDisplay.jsp
    -LayoutContainerBottom.jspf

and more...




































Saturday, August 6, 2011

More about TypedProperty

   TypedProperty
  • Which extends HashTable
  •  Implements Serializable
  •  com.ibm.commerce.datatype.TypedProperty
  •  TypedProperty(),
  • TypedProperty(int initialCapacity),
  • TypedProperty(int initialCapacity, float loadFactor)
  • TypedProperty(Hashtable hTP) are constructors
  • example
  • TypedProperty rspProp = getRequestProperties();
  • rspProp.put("catalogId","10051");
  • Located in Enablement-BaseComponentLogic.jar

All about Organization Structure

About wcs Organization Structure:
The WebSphere Commerce organization structure provides a framework for the actors, or entities, in your business scenario. This framework is organized in a hierarchical structure, which mimics typical organizational hierarchies with entries for organizations and organizational units and users.The organization structure and the access control model, are closely related, in that the access control model applies access control policies to organizations rather than to individual entities (stores, customers, administrators and so on).The policies that apply to an entity (or resource) are applied to the organizations that own the entity or resource.

The basic organization structure is
(Root organization)  --> (Default Organiation)
(site administrator)         (customer)

Root organization:
The root organization is the top level organization and is its own parent. All organizations in the WebSphere Commerce organization structure are descendents of the root organization. The site administrators are owned by the root organization.

Default organization:
The default organization is owned by the root organization.
All guest customers and all customers in a consumer direct scenario belong to the default organization.
Customers in a B2B direct or B2B indirect scenarios should not be placed under the default organization,
but rather in the appropriate buyer organization. B2C users under the default organization can be managed by an administrator in WebSphere Commerce Accelerator.Business users outside of the default organization can be managed in the Organization Administration Console.Do no create stores under the default organization. Instead, create stores under a separate organization, such as the seller organization

Consumer Direct Organization structure
Root--Seller Organization--B2COrganization
Root--Default Org

B2B Direct Organization Structure
Root Organization -Default Organization
Root Organization - Buyer Organization
Root Organization - Seller Organization - B2B Organization
Both Default org and Buyer org will keep the customer data and Seller Organization will keep the store data
A child organizational unit (ou), B2B organization, is created under the seller organization to own the store (Business).
eg :

Extended Sites Organization Structure
Root org -Default Organization (customers who does NOT belogs to any body)
Root org -Buyer Organization (Buyers who represents organizations)
Root org -Seller Organization
  -B2C - Store A
  -B2B - Store B

Root Organization -Extended Sites Organization -
  -Extended Sites hub Organization (Channel adminstrators,Hub store)
  -Store directory Organization (Store Directory)
  -Asset Store Organization
   -Catalog Asset Store
   -Consumer direct storefront asset store
   -B2B direct storefront asset store

Thursday, August 4, 2011

All about BCS or Business Context Services

About Business Context in WCS
In previous releases, the context information was stored in the Command Context object.
With the introduction of Business Context in this release, this information are now stored in various business contexts. Command Context becomes a helper class that wraps on top of these business contexts.
One can directly retrieve the same piece of information by retrieving the appropriate business context by using the CommandContext.getContext(businessContextName) method.
Information that is not available from business contexts, remains available and local to the Command Context object.
A command can get the following key information from the command context
Or
Contextual informations are encapsulated in to different Business Contexts. Such as EntitlementContext, CommandContext etc
BCS(Business Context Services) manages information used by Business Contexts

What is Context?

What is Business Context Services? The business context service manages contextual information used by business components.
 The information is encapsulated within different types of business contexts.
 This process formalizes the context infrastructure and fosters reuse between different business models
What is Business Context

What is Command Context?
 Commands can obtain information using the command context.
 Examples of information available include the user's ID, the user object, the language identifier, and the store identifier. When writing a command, you have access to the command context by calling the getCommandContext() method of the command's superclass. The command context is set to the controller command when the command is invoked by the component facade.  A controller command should propagate the command context to any task or controller commands that are invoked during processing
 BaseContext baseContext = (BaseContext)getCommandContext().getContext(BaseContext.CONTEXT_NAME);
 baseContext.getRunAsId();
 baseContext.getStoreId()
 baseContext.getUserId()
 baseContext.getUser()
 baseContext.getStore()
 GlobalizationContext globalizationContext = (GlobalizationContext)getCommandContext().getContext(GlobalizationContext.CONTEXT_NAME);
 globalizationContext.getLanguageId();
 globalizationContext.getCurrency(); 
 getCurrentTradingAgreements()
 getCurrentTradingAgreements(CommandContext)


List all type of Business Context public interface Context
 public interface CommandContext
 public class PromotionContext
 public interface BaseContext

 BaseContext
 This context contains the basic attributes that an activity needs, such as store ID, caller ID, and the run-as ID.

 EntitlementContext
 Contains the contract information associated with the user
 This context holds information about entitlement criteria, such as reduced prices for gold club membership.

 GlobalizationContext
 Contains the globalization/locale information assosiated with the session
 This context helps components determine locale-specific information such as what language a message should be rendered in, or
 what currency should be used in the calculation of a price.

 ContentContext
 If Workspaces are enabled, this context determines the content or business objects that can be displayed or edited based on
 versioning information.

 TaskContext
 If Workspaces are enabled, this context determines which task an administrator is currently performing.

 AuditContext
 This context is usually provided by third party components. You might want to bridge the gap to the third party interface instead of programming to it directly. This context enables you to connect to a different vendor's implementation of the service in the future without the need to rewrite your component.

 PreviewContext
 The preview context is the attempt to solve both problems by allowing multi-users to validate independent content without influencing other users and ensuring the content does not required additional changes after validation. In order to achieve this, a context object will be associated with the preview operation that will represent the state information that will be used when deciding the content to preview along with other external events. By associating a preview context with an activity, operations can use this content state information as a basis to decide what content to display. To solve the date issue, the preview context will contain the preview date which will be used to render the content to be display. By having activities having a unique preview context, this will allow multiple users to preview independent content without having to change content data or global system state information.

 ExperimentContext
 ExperimentContext is used to store the result of all active experiments for individual users, where result is a
 system-generated number which determines the control or test element to be selected in the experiment.
 This information is persisted throughout the user session, so the same result will be used in
 the same session without re-generation of the number.

 CatalogContext
 This context contains information related to the catalog in the current session, such as the catalog ID, the catalog owner,
 and whether this is a master catalog or not.

 GiftRegistryContext
 This context contains gift registry information for a user in the current session, such as a list of gift registries that  the user has accessed, the relationship the user has to specific gift registries (gift giver, registrant or coregistrant), and the external ID of the gift registry the user is currently managing

BipinContext !!
No kidding.. It is possible You can create your own Context. Read the steps given below

Examples of Business Context and how to use it?

How to create new Business Context?

Business Context configuration file?
 Default business contexts are defined in the xml/config/businessContext.xml file.
 The location of the file is defined in the BusinessContextService/BusinessContextConfigFile attribute in
 WebSphere Commerce configuration file (xml/wc-server.xml).
 Multiple file locations separated by commas are allowed for this attribute to support component-based development. That is, when creating a new business context, instead of modifying the default configuration file, you can define it in a  separate file and append it to the end of the BusinessContextConfigFile attribute on the BusinessContextService element.
 This implementation allows for future upgrade to the businessContext.xml file without affecting the business context that you have registered.

Refer details here
http://www.ibm.com/developerworks/websphere/tutorials/0701_deluca/section6.html

Wednesday, May 18, 2011

What you Know about EDPOrder ?

Noting ?? no probs..
here is the answer.. .
  • An EDPOrder can be seen as a portion of the complete order container. The orders subsystem part is the one that handles order items, taxes, etc. The EDPOrder is the portion that handles the payments part only.
  • EDPOrder will provide the status of the task working on a payment action in backgroud
  • Copying from another blog
  • At the time of adding item to shopping cart ORDERS,ORDERITEMS and EDPORDER will get populate
  • Based on the customer payment selection in the order there is a payment instruction record will create in EDPPAYINST
  • In the code, EDP Order data is retrieved using the EDPServices as shown below.
  •  ---Rest is copyed from chetan;s blog.. here ..
    EDPOrderData edpOrderData = EDPServices.getServices().getOmfAccessor().getOMF().getEDPOrder(new Long(getOrderId()), Integer.valueOf(storeId));
    Long edpOrderId = edpOrderData.getOrderKey();

    We get the EDP order payment instructions through the following

    SortedSet pis = EDPServices.getServices().getOmfAccessor().getOMF().getPis(edpOrderId);

    Using the payment instruction returned, you can get the details like amount, payment method, etc.

    Orders data can be accessed using the websphere commerce OrderAccessBean and order details using OrderItemAccessBean

    There is a PPCPAYINST table which stores the value object Payment Instruction in WCS which contains information for payment plugins to process the final payments. Payments for a specific payment method can only be charged upto a maximum specified by the AMOUNT column in PPCPAYINST table. PPCEXTDATA contains non-standard data specific to a payment method. For example, paymentexpress might have some non-standard protocol data which is stored in here

  • Payment Tables 
  • POLICY
  • ORDPAYMTHD
  • ordpayinfo
  • paysummary
  • POLICYTYPE
  • EDPPAYINST
  • EDPORDER

  • Payment flow
  • Customer select payment method(VISA) from store front
  • OrderProcess invokes PrimePayment task command
  • select * from policy table where where policyname='visa'
  • update the EDPOrder table
  • PrimePayment task command calls the Payment rules engine
  • Payment rules engine determines the Action that needs to be performed
  • The Action (wrapped into event) is passed to the Payment plug-in-controller
  • The payment plug-in controller determines the plug-in to be used
  • The Action is invoked agaist the plug-in
  • The plug-in interacts with payment service provider 

  • All configures are there in 
  • xml/config/payment(s)/paymentmapping.xml,*.xml

Tuesday, May 17, 2011

WebSphere Commerce Order Flow process

WCS Order management flow
Place an order.
  • A customer(use store front) or an administrator(Use accelerator/MC) who has the authority to act on behalf of the customer places an order with the store.
  • While adding items to shopping cart order status will be Pending state
Check out:
  • After the shopper completes the order checkout sequence, the order moves from a Pending state (P) to M state (pending payment approval). Here the order can also go into the state of M or C (for some payment method) or L (no inventory and no back order) or B (some backordered orderitems).
  •  When the order checkout sequence is complete the order moves to one of the following states:
    •  A:Payment authorization requires review
    •  B:Backordered
    •  C:Payment authorization complete
Order Approval
  • B2B required Order Approval , B2C not required
  • Approve payment for the order, if required. Payment methods such as COD (Cash on Delivery) and Bill Me do not need approval.
Order Process
  • If the order contains products that are to be backordered, then it moves to state B (backordered).
  • Orders can be backordered with the command ProcessBackorders, or by a scheduler.
  • For reauthorization, the order goes back to state M or a state such as A, I, B, or C. After a backorder is approved, it should be allocated and not reordered, or else it may go back for approval again.
  • Order process includes following task -using accelerator
    • Finding Order
    • Change the quantity of the product in the order
    • Changing the purchase order number for an order in a B2B direct store
    • Add/Remove a product to an order
    • Selecting another shipping address/Shipping method/billing address for an order
    • Changing the total price of an order
    • Editing an order level adjustment
    • Changing the payment options/payment processing for an order
    • Add comments
    • View -Order summary/payment status/Order invoice
    • Cancel the orders
    • Apply Order Blocks
Order Release:
  • Release the order to fulfillment. The Scheduler Job ReleaseToFulfillment releases the orders to fulfillment.
  • When all order items for the order are released, the order moves to state R (Released).
Order Fullfillment:
  • Create a pick batch for all orders released to the specified fulfillment center using Websphere commerce Accelerator
  • View and print pick tickets.
  • View and print packaging slips.
  • Pick and pack products specified in the pick ticket and packing slip.
  • Create package.
  • Ship goods. Ship the order to the customer. (No action from wcs)
Order Completion:
  • Confirm shipment has been sent. When all order items are shipped, the order moves to S (Shipped) status.
  • Finalize the order.
    • The BalancePayment scheduled job initiates payment deposit. The order state moves to D (Deposited).
    • The OrderClose checks whether the shipped order is totally deposited. If YES, the order status is changed to 'D';
    • OrderPaymentSynchronize:Checks whether the order is totally authorized. If YES, the order status is changed to 'C'
Note:
Order Process flow another look
http://www.albeesonline.com/blog/category/websphere/websphere-commerce-websphere/

Some Order Command tips:

OrderItemAddCmdImpl
Call ResolveSKUCmdImpl:
+--Check the product attributes and based on that values locate the items , which is ready for order
  -check catentry is buyable or not
  -Check customer is entitlement to buy this catentry id
  -if all above params correct contine
  -if fails but continue=1 then skip to next order
  -if orderitemId is provided update the
  -if partnum/catentry provided new orderitem id
  -if address_id not specified use default(P,nickname)
  -if quantity is 0 delete
  -if shipmod id not availabnle use default
  -Call GetContractUnitPriceCmd to calcuate the price
-OrderItemUpdateCmdImpl
-OrderCreateCmdImpl
-UpdateShippingAddressCmd
+--call findAddressIdForOrderItem() to find the shipping address for orderitem
+--call ValidateOrderAddressCmd to validate billingaddress and shipping address
+--updateShippingAddress() 
-ValidateTradingPaymentCmd
+--This command checks whether the payment method to be added comply with the BOPIS (Buy Online Pick In Store) rules. 
-DoInventoryActionCmd
+--To do all inventory operations
+--There are 10 usages identified as interfaces between the order commands and this interface command.
+--For every usage, different parameters are required
+--Action and parameters together will help to do further processing
-UpdateShipInfoCmdImpl
+--Update SHIPINFO table(ship carrier act number,ship charge type,ship instructions,ship mod)
-RaiseOrderEventCmdImpl
+--This Order task command is used to raise an order related event
+--raiseOrderCancellationEvent()
+--raiseOrderItemUpdateEvent()
 OrderCalculateCmdImpl

This command is called by OrderItemBaseCmdImpl and OrderItemDeleteCmdImpl to refresh the order price, charges and freebie items after Add, Update and Delete order item.
The default implementation of this command is OrderCalculateCmdImpl. But in out-of-the-box CMDREG table, the implementation of this command is mapped to PromotionEngineOrderCalculateCmdImp

-Unlock the order
-initialize the specified CalculationUsages that are enabled
-if RulesBasedDiscount component is enabled
-call discount service to obtain the list of catalogentry to add to order
-if ATP is disabled and there is insufficient inventory
-remove catalogentry from the list
-add catalogentry identifier to outOfInventoryCatalogEntryId list
-Recalculate specified calculation usages
-call the OrderItemAdd
-update the productTotal attributes of the Order and its OrderItems
-update the SubOrders for the Order
-apply the specified CalculationUsages that are enabled
-summarize the specified CalculationUsages that are enabled
-Finally, call the setResponseProperties() method.
-ResolveOrderCmd
-Promotion engine to determine the catalog entries to add
-Recalculate Order
 OrderPrepareCmdImpl
  -prepare order by
  -determine prices
  -discounts
  -shipping charges
  -shipping adjustment
  -taxes
  -Lock the order(1)
  -ensure all orderitems are buyable
  -update order item address
  -update order item validation
  -update order item prices
  -update order item total
  -update auto added order items
  -check order inventory
 OrderProcessCmdImpl

 OrderPrepareCmdImpl
  -Prepares the orders for Display(OrderDisplayCmd)
  -Prepares the orders for OrderProcess
  -if no orderId then use Current pending order
  -Default error view OrderNoneErrorView
  -if commit=1 start new db transaction for every order
  -status should P WINE (bipins formula :)
  -Call PrepareOrder task command
  --Delete generated orderitems(PREPAREFLAG)
  --check CATENTRY.BUYABLE=1
  --If ATP inventory allocation is enabled/disabled, call the DoInventoryActionCmd
  --Call the ValidateDynamicKitConfiguration task command.
  --Obtain new unit price(GetContractSpecialPrice/GetBaseSpecialPrice)
  --Do not refresh prices for order items whose prepareFlags attributes specify "quotation
  -prepare order by
  -determine prices
  -discounts
  -shipping charges
  -shipping adjustment
  -taxes
  -lock the order
  -ensure all orderitems are buyable
  -update order item address
  -update order item validation
  -update order item prices
  -update order item total
  -update auto added order items
  -check order inventory






Monday, May 16, 2011

How to add servlet in the WCS

It is so easy .. check my findings

Step 1; Open \web.xml
add below section
<servlet>
 <display-name>MyServlet</display-name>
 <servlet-name>MyServlet</servlet-name>
 <servlet-class>com.mycompany.wcs.servlet.MyServlet</servlet-class>
</servlet>
 <servlet-mapping>
 <servlet-name>MyServlet</servlet-name>
 <url-pattern>/MyServlet</url-pattern>
</servlet-mapping>

Save and restart the server..
That is it.. Servlet is ready

Now create MyServlet.java under com.mycompany.wcs.servlet.MyServlet package
Make sure service() method is available in your servlet .. and your  MyServlet extends HttpServlet

Done..  call your servlet from anywhere ..
Enjoy servlet in wcs :)

Tuesday, April 26, 2011

WCS 7 - product overview study notes

Features and benefits in WCS 7.0
 
Express –Professional –Enterprise
  • Madison starter store
  • Madison mobile starter store
  • Brazil starter store
  • MayUJoy starter store
  • Remote widgets
  • Coshopping
  • Subscription support
  • Product Ranking
  • Digital wallet
  • Social Commerce
  • Social Bridging
  • Websphere commerce search
  • IBM gift center
  • Punch-out payment
  • Payment plug-in, Payment rule engine, payment plug-in controller
  • Globalization and Localization support
  • Marketing + Coremetrics supports
  • Promotions
  • Distributed Order Management Integration(DOM)
  • Administration tool
  • Coremetrics integration supports
  • Websphere commerce Accelerator
  • IBM Management Center-Catalogs, promotions, marketing activity, assets and managing  store
Professional –Enterprise
  • Cross channel order processing
  • Sales Center
  • Workspaces
  • Auctions
Enterprise
  • B2B direct start store/Indirect starter store
  • Elite starter store
  • Extended site starter store
  • Demand chain business model
  • Supply chain business model
  • Contracts and Entitlement
  • Pricing
  • Request for quote
  • Enhanced Websphere Commerce search
  • IBM Management Center –catalog filter ,price rules, price list
Fix pack and Feature pack list

  • Fix pack 1
a)     Supports Feature pack 1
b)     Support IE8 for all starter stores
c)     Supports DB2 version 9.7
d)     Support for 64-bit WebSphere Application Server
e)     Support for Arabic language in the Madisons starter store
f)       Enhance WebSphere Commerce Accelerator Tax notebook to show start and end dates for tax rules
g)     Enhance returns capability to support non-ATP inventory
  • Fix pack 2
a)     Supports Feature pack 2
b)     Support for 32-bit AIX 7.1
c)     Support for Windows 7 on WebSphere Commerce 7.0 Developer Edition
d)     Support for Oracle 11gR2
  • Feature pack 1

WCS Editions
  • Websphere Commerce Express
  • Websphere Commerce Professional
  • Websphere Commerce Enterprise
  • Websphere Commerce Developer Express
  • Websphere Commerce Developer Professional
  • Websphere Commerce Developer Enterprise
  • Sales Center for Websphere Commerce
  • Gift Center for Websphere Commerce

Platform Details
  • Hardware
a)     Intel 32 bit,64 bit for Windows , Linux
b)     Intel X86, X86/64 –windows ,Linux
c)     SPARC – Solaris only
d)     Z series – Linux only
e)     POWER® – AIX® and Linux
  • Operating System
a)     Dropped –Windows 2000,Linux RHEL 3,Solaris 9
b)     Added –winserver 2008,win visa ,Linux SUSE 11
  • Browser
a)     Dropped –Opera ,IE 5,Netscape ,Mozilla ,FF 1 and 2
b)     Added – IE8
  • WAS server
a)     Websphere application sever 7
b)     Rational application developer 7.5
  • Database
a)     DB2 9.5         jdbcdriver db2jcc4.jar
b)     Oracle 11g     jdbcdriver ojdbc6.jar
  • Other Supports
a)     IBM Support assistant v4.1
b)     Websphere portal server 6.1
c)     Websphere MQ 7.0


New Features in WCS7.0
  • Multi-channel precision marketing
a)     Automated marketing based on an individual consumer’s preferences and shopping intentions
b)     Desktop Browser To Trigged Event To Marketing engine Rules To Marketing message To Desktop Browser (same for all touch points)
c)     In other words the consumer’s experience is extended with triggers, or events, that can originate from any touch point, such as a desktop browser, mobile device, or a kiosk. The triggers are processed by a rules based marketing engine which produces targeted marketing messages. These messages are routed to the same touch points which originated the trigger.
d)     IBM Management Center => Marketing tool => Activity Builder
e)     Dynamic add/delete of customers from customer segments
f)       Enhanced promotions tool usability
g)     New promotion features
  • Mobile Commerce
a)     Mobile Commerce is a method to enable mobile devices to participate in the shopping experience.
b)     A generic user interface optimized for mobile device interfaces is implemented with easily deployed page templates for these pages:
c)     Product information, order status, physical store locator, wish list, shopping list, and mobile message opt-in.
d)     Mobile messages can be sent to inform you of marketing information or for current order status.
e)     Mobile enabled pages integrate with Multi-channel Precision Marketing to provide a set of mobile enabled triggers.
  • Social commerce
a)     Social commerce uses Web social networking concepts to allow customers to market your products for you.
b)     The social networking concepts that have been implemented are
a.      product reviews and ratings
b.      product blogs at the category level
c.      user profiles viewable by others
d.      Photo galleries at the product category level.
c)     These social networking concepts involve data stored by external products and services.
d)     The integration of these products and services are accomplished with WebSphere sMash technology.
e)     Bazaarvoice is a third party service provider that provides a service for hosting ratings and reviews.
f)       Pluck is a third party service provider that provides a service for hosting blogs, profiles, and galleries.
g)     IBM Lotus Connections is a product that also provides hosting for blogs, profiles, and galleries.

a)     The high efficiency data loading utility is provided for loading catalog, pricing, and inventory data for initial installation of a store implementation.
b)     It can also be used to update this data. Compared to the mass loader in V6, the data load utility is easier to implement the input data specifications, and provides improved performance and scalability for large amounts of data.
c)     The key improvement in the data loader design is that it supports data loading by business objects and data loading by database tables.
d)     This design also allows the utility to have better reliability and data consistency in the result of a load failure.
  • Starter store enabled by web 2.0
a)     The starter stores have been enhanced by adopting Web 2.0 technology at more current support levels. The starter stores have the ability to selectively enable Web 2.0 style shopping paths by using the Accelerator change flow function.
b)     The functional improvements are improved page layout and styling, more complete use of Web service tags, updated Ajax framework, and Dojo libraries updated to Dojo 1.3.1.
c)     Both the business-to-consumer and the business-to-business starter store business models adopt the Web 2.0 technology.
d)     Madison’s business-to-consumer starter store has the same functionality as Madisons in V6, feature pack 5. The Elite business-to-business starter store is new in V7.
  • Elite Business to business starter store
a)     The Elite business-to-business starter store has support for streamlined checkout, contract based pricing, buyer organizations, order scheduling and splitting, back ordering, save orders, and organizational participants.
b)     The Elite starter store also is integrated with Multichannel Precision Marketing using triggers, targets and actions.
  • Management Center enhancement
a)     The Management Center has been enhanced with more operations formerly done only in Accelerator. You can now create customer segments, create e-marketing spots, and change your password at login.
b)     General usability and efficiency has been improved with case-insensitive search, keyboard shortcuts, text edit undo and redo, and direct editing of list columns.
  • Migration assistant utility
a)     A set of migration utilities assist migrating older WebSphere Commerce versions to V7 using a graphical wizard on top of an Apache Ant script framework.
b)     You can migrate from V5.6.1 or from V6.0 with any feature pack enabled. You can also accommodate upgrading to a higher edition of the product.
c)     The Ant scripts handle migrating your database, applications and Web server configurations.




Changed Functionality

  • Madison starter store replaces Consumer direct
  • Apache Derby replaces Cloudscape database support
  • DB2 loop-back configuration has been removed on Unix platforms
  • Oracle database character set has been changed from UTF8 to AL32UTF8
  • Order trash can feature disabled by default
Deprecated and Discontinue Functionality


Deprecated Feature
New Feature
Accelerator.Change Flow                    
Management center.Store management tool
Accelerator.Manage Files                   
Management center.Asset tool
Accelerator.Change Page                    
Management center.e-Marketing spot
Accelerator.Banner                         
Management center.e-Marketing spot
Accelerator.Upload Logo                    
Management center.e-Marketing spot
Accelerator.Catalog tool                    
Management center.Catalog tool
Accelerator.Prmotion tool                  
Management center.Promotion tool
Accelerator.Marketing tool                 
Management center.Marketing tool
Accelerator.Price tool
Management center.catalogfilter,Pricing tool
Accelerator.Extended sites catalog filter  
Management center.catalog filter,Pricing tool
Accelerator.B2B contract catalog filter    
Management center.catalog filter,Pricing tool
Accelerator.Marketing engine               
Management center.marketing engine
Configuration Noun                         
Online store noun
Accelerator.content spot                   
Management Center.e-Spots
OMS/ERP integration                        
DOM integration
WCS payments                               
Payment subsystem and appropriate plug-in
Product Advisor                            
Websphere commerce search
PriceTCMasterCatalogWithOptionalAdjustment 
PriceTCMasterCatalogWithFiltering
Discontinue Feature
New Feature
WCS Analyzer
Coremetrics ,Omniature –see details
IBM Lotus quick place
See details
Staging check utility
Stagegroup – see details





  • Data Loading utility