Friday 13 July 2012

WebSphere Commerce -Member Subsystem

WebSphere Commerce Member Subsystem:
Business logic in the Member subsystem provides member registration and profile management services
Member Subsytem: A top view


User Registration Flow:



User type :

  • S(Site administrator )
  • A(Administrator)
  • G(Guest user)
  • R(Registered User)
Table:
  • USERS,USERREG,USERREPROF,USERDEMO,
  • BUSPROF
  • MEMBER,MBRATTR,MBRATTRVAL
  • MBRREL
  • MBRROLE
  • MBRGRP,MBRGRPTYPE,MBRGRPMBR,MBRGRPUSG
  • ORGENTITY
  • ADDRESS
Commands:
UserRegistrationAddCmd
  • PreUserRegistrationAddCmd
  • Update USERS.REGISTERTYPE='R' from 'G'
  • Create new record in USERREG
  • Create new records in USERPROF,BUSPROF,USERDEMO
  • Create new record in ADDRESS with unique nickname
  • AuthenticationPolicyCmd
  • ProcessPaymentMemberCmd
  • ProcessPolicyTypeCmd
  • AuditUserRegistrationCmd
  • UserRegistrationRoleAssignCmd
  • PostUserRegistrationAddCmd

AddressAdd

  • Address type-S, B, SB(i.e.Shipping=S, Business=B, Shipping & Business=SB)
  • isPrimary -0,1
  • Address Status : P(permanent),T(Temporary)
  • Unique nickname
  • AddressBook

AddressDelete: status = T (from P)
AddressCheck:Check user has atleast one P address
AddressUpdate : Nick name cannot be updated

Wednesday 11 July 2012

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

Tuesday 10 July 2012

Description about Controller Command.

The abstract class and interface are both found in the com.ibm.commerce.command package.


A new controller command should extend the abstract controller command class ( com.ibm.commerce.command.ControllerCommandImpl). When writing a new controller command, you should override the following methods from the abstract class:

isGeneric()
In the standard WebSphere Commerce implementation there are multiple types of users. These include generic, guest, and registered users. Within the grouping of registered users there are customers and administrators.
The generic user has a common user ID that is used across the entire system. This common user ID supports general browsing on the site in a manner that minimizes system resource usage. It is more efficient to use this common user ID for general browsing, since the Web controller does not need to retrieve a user object for commands that can be invoked by the generic user.
The isGeneric method returns a Boolean value which specifies whether the command can be invoked by the generic user. The isGeneric method of a controller command's superclass sets the value to false (meaning that the invoker must be either a registered customer or a guest customer). If your new controller command can be invoked by generic users, override this method to return true.
You should override this method to return true if your new command does not fetch or create resources associated with a user. An example of a command that can be invoked by a generic user is the ProductDisplay command. It is sensible to allow any user to be able to view products. An example of a command for which a user must be either a guest or registered user (and hence, isGeneric returns false) is the OrderItemAdd command.
When isGeneric returns a value of true, the Web controller does not create a new user object for the current session. As such, commands that can be invoked by the generic user run faster, since the Web controller does not need to retrieve a user object.

isRetriable()

The isRetriable method returns a Boolean value which specifies whether the command can be retried on a transaction rollback exception. The isRetriable method of the new controller command's superclass returns a value of false. You should override this method and return a value of true, if your command can be retried on a transaction rollback exception.
An example of a command that should not be retried in the case of a transaction exception is the OrderProcess command. This command invokes the third party payment authorization process. It cannot be retried, since that authorization cannot be reversed. An example of a command that can be retried is the ProductDisplay command.
setRequestProperties(com.ibm.commerce.datatype.TypedProperty reqParms)

The setRequestProperties method is invoked by the Web controller to pass all input properties to the controller command. The controller command must parse the input properties and set each individual property explicitly within this method. This explicit setting of properties by the controller command itself promotes the concept of type safe properties.

validateParameters()

The validateParameters method is used to do initial parameter checking and any necessary resolution of parameters. For example, it could be used to resolve orderId=*. This method is called before both the getResources and performExecute methods.

getResources(
)
This method is used to implement resource-level access control. It returns a vector of resource-action pairs upon which the command intends to act. If nothing is returned, no resource-level access control is performed.

performExecute()
The performExecute method contains the business logic for your command. It should invoke the performExecute method of the command's superclass before any new business logic is executed. At the end, it must return a view name.

Important Commands & DataBeans present in Catalog Subsystem

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

Management Centre vs Commerce Accelerator

1.For promotions and espot configurations, which is a better approach - management center or accelerator?
  • Considering the management center's design, its complex structure takes more time in implementing new modifications as compared to accelerator modifications.

2.We can view the status what change's we did in Management Center, If we did any wrong it shows an error, but in Accelerator the error is not shown.

3.Management center provides a rich UI with features like drag and drop. There is a possibility that in some future releases Commerce Accelerator may be removed. With current release it is not possible as it is tightly coupled with the framework.

4.For an end user perspective Management Center will be the preferred tool. Being a flash based tool it is slow but very user friendly.

5.Management Center, It's sometimes slow but it provides more usability such as drag and drop,etc which makes it a favorite tool for the business user.

=============

  • Accelerator
    • Create content spot and schedule
  • Management Center
    • Moving forward, no separate object for content spots, will be phased out
    • Content spot was originally created for performance reasons,
    • New caching of e-spots eliminates need for content spots
    • Now, changing from static (content spot) to dynamic (e-spot) content does not require change in code/jsp
    • Previous in Management Center – Campaign, Web Activity, Marketing Experiment, Email Activity, Promotion, Content
    • New in Management Center – Customer Segment, e-Spot, Dialog Activity

Solr settings and full indexing (Attribute task update)

SOLR is mainly used for : Indexing Querying    SOLR is a product of apache and having the inbuilt server named jeety. Mainly the ...