IBM WCS ( Websphere Commerce ) - Interview Questions and Answers



1. What is the difference between Controller and Task Command.

Ans. Controller Command is the command that gets called upon a request, just like We have actions in struts and controller in Spring. Task is a step in this bigger process. Task command are the commands that perform specific task for a controller command, like service classes in other frameworks. In order to complete the request, a controller command may invoke multiple task commands.

Other difference are -
 a. There is a url mapping for controller command whereas Task command don't have URL mapped to them.
 b. Controller command gets invoked before the task command.

2. What is difference between Product and Item ?

Ans. Item is a sale-able merchandise where as Product is a group of sale-able merchandise which share certain attributes. For example - Cell phone is a product whereas Samsung Galaxy S2 - White is an item.

Quantity is always attached to SKU ( Stock keeping unit ) or items. Product quanity has no relevance in terms of identify the current stock or reorder condition. 

3. How Promotions are created and stored in WCS ?

Ans. Promotions are created either using Management Center or Accelerator. PX_PROMOTION table is used to store Promotions. Complete Promotion is stored as an XML string within XMLPARAM column. Other tables which are used to store promotion related information are -

CATENTCALCD
CALCODE
CLCDPROMO

4. What is purchase condition and reward in promotions ?

Ans. Purchase condition is the condition that must be fulfilled before a promotion is applied and Reward is the benefit that is passed to customer.

For Example - If promotion is "Buy 2 Quantity of  X,  Get Y Free" , Purchase condition is inclusion of 2 qty of X in Cart. Reward in this case would be 1 qty of Y.

5. What steps are needed to create a new promotion type ?

Ans.

a. Create necessary lzx files( template , object definition and properties ), make config entries and then Build open Laszlo project ( for LOBTools ) so that new promotion type should be displayed in management center.
b. Create a new promotion type xsl ( promotion type template ) and then map it to the promotionn type.

6. How can you check the status of an ORDER ?

Ans. By querying the STATUS from the ORDERS table.

7. I want to collect email addresses of all Registered Users. Which table should I refer ?

Ans. ADDRESS

8. How can i get to know all the active promotions without going to management center ?

Ans. We can query the DB as follows 

Select NAME from PX_PROMOTION where STATUS=1;

9. How can we remove a JSP page from getting cached ?

Ans. Remove the jsp entry from cachespec.xml.

10. Where do we store DB configuration and how can we change that ?

Ans. wc-server.xml stores the DB configuration. We can either change it manually or by using setdbtype command.  

11. Which table holds the encrypted login password ?

Ans. USERREG

12. How can we enable promotion engine logs ?

Ans. By making Debug=true within WCSPromotionEngineConfig.xml   

13. What are the steps to create a new business policy ?
Ans.

Step 1 - Create a new policy definition by adding record in tables POLICY, POLICYDESC.
Step 3 - Associate commands to the new policy by adding records in POLICYCMD.
Step 2 - Associate the new policy with its terms and conditions by adding a record in relationship table POLICYTC.
Step 4 - Add reference to the policy in the repective contract xml file.   


14. Define Business policy categories provided by WCS ?

Ans.
Catalog business policies
Catalog business policies define the scope and characteristics of the catalog of products for sale in a store including prices and the categorization of products in a store's catalog.
Payment business policies
Invoicing, payment, and refund business policies define how a store accepts payments, pays refunds, and the format of a store's invoices.
Returns business policies
Returns business policies define if refunds are accepted, the time period they are accepted for, and any re-stocking fees applied to returns.
Shipping business policies
Shipping business policies define the shipping providers a store can use and the charges associated with each type.
Referral interface business policies
Referral interface business policies define the relationship between a proxy store and a remote store.
15. Where do we specify the buyer seller relationship ?

Ans. In the contract xml files. 

16. How Access control Policies are implemented in WCS ?

Ans. There are three elements i.e Users ( Who want access ) , Actions ( What kind of Access ) and Resources ( Whose Access ). The relationship between resource and user is store in ACRELATION table and ACRESREL associate a resource and relationship.

17. What are the tables used for Access control ?

Ans. ACPOLICY , ACPOLDESC , ACACTION , ACRELATION , ACRESREL , ACRESGRP.

18. Who manages the Access control policies and How ?

Ans. Site Administrator and through Org Admin Console.

19. What are the design patterns used in WCS ?

Ans. MVC , Display Design and Command.

20. What is reload interval and where it is defined ?

Ans. reload interval or jsp caching interval is a parameter that indicates how frequently a JSP should be recompiled.

It is defined within 

Stores.war\WEB-INF\ibm-web-ext.xmi

Subscribe to WebSphere Commerce News and Posts.
Get latest updates and posts on IBM WCS from Buggybread.com
Enter your email address:



21. What information is stored in CACHEIVL table and How does this help in caching ? 

Ans. This table records the changes to product or category information in the database. This is referred by WCS for invalidating dynacache.

22. What are the different types of Auctions in WCS ?

Ans. open cry, sealed bid, and dutch.

23. Can we schedule auctions and promotions in WCS ?

Ans. Yes

24. How do we set Auctions in WCS ?

Ans. Through Accelerator. 

25. What is SKU ?

Ans. SKU is Stock keeping unit. Items are referred to as SKU as they are the narrowest identifier for which business needs to track quantity.

26. Why can't we add Products while specifying Target Catalog entry in Promotions?

Ans. Product refer to category of Items and hence can't be associated to a particular Stock keeping unit. Items can only be targeted while creating promotions.

27. What is B2C and B2B Business model ?

Ans. B2C business deals with selling merchandise directly to consumers whereas B2B business deals with selling / coordination with other businesses ( partners , distributors , affiliates etc ) for selling merchandise. 

28. Explain concept of Hubs and Extended site stores ?

Ans. Hub and Extended sites /stores are used in case of selling through partners and affiliates. Hub is the central site around which extended stores are created by/for the respective partner / affiliate. Store owner performs the extended site administrations whereas overall control over merchandise remains with the site.

29. What are eSpots and How do we manage them ?

Ans. eSpot is the mechanism in WCS to schedule and display dynamic content. Content management for these slots are done through Accelarator.

30. What are different Business Models supported by WCS ?

Ans. B2C , B2B , Supply Chain , Extended Sites.

31. What is dynacache and role of cachespec.xml in WCS ?

Ans. Dynacache in WCS is the object cache. Instead of creating objects again and again , the store objects are rendered on the basis of matched rules. Caching rules are stored in a configuration file called cachespec.xml.

32. Can we see objects cached in Dynacache ?

Ans. We can see , monitor and can even change dynacache manually but for that we need to install a seperate application provided by WCS.

33. How to enable Cross Site scripting protection in WCS ?

Ans. By specifying XSiteScriptingProtection within wc-server.xml. Prohibited characters and attributes are specified within XSiteScriptingProtection to protect the application from any XSS attach.

34. What is an Asset store ?

Ans. Asset stores are collections of sharable resources (business artifacts, business processes and storefront assets) that can be leveraged in other stores.  

35. What is an Attribute Dictionary and What are its benefits ?

Ans. Attribute dictionary is a set of common attributes that can be reused by multiple products. 

The attribute dictionary provides a central place to manage shared attributes, with the following features:
  • The ability to standardize attributes.
  • The ability to easily compare attributes shared by products and SKUs.
  • The ability to quickly change attributes in one place to affect all catalog entries.
36. What is ETL ?

Ans ETL is Extract , Transform and Load. As the name suggest , it is the process of Data extraction , fabrication and then transfer to Database. Data Migration is one case of ETL.

37. Whats is a starter store ?

Ans. Its the default store that comes in built with WCS.

38. What is SAR file ?

Ans. Its the Store Archive that holds the store Assets in the compressed form. 

39. What is suborder ?

Ans. Part of the order that needs to be shipped to a particular Address. There could be an Order where different portions needs to be delivered to different addresses. Each portion in such case is a suborder.

40. What is backorder ?

Ans. The status of an ordered product when inventory allocation has determined that the product is not available.

42. What is cross-selling ?

Ans. Selling of Merchandise across stores. For example - Store A selling Store B's merchandise.

43. What is fulfillment center ?

Ans. Fulfillment center or Delivery Center is the store or warehouse from where the actual delivery of merchandise takes place.

44. What is a retriable command ?

Ans. A retriable command is a controller command that can re-execute itself after encountering a system-level exception during the command execution.  

45. What are the benefits of Smart bean ?

Ans. A smart data bean uses a lazy fetch method to retrieve its own data. This type of data bean can provide better performance in situations where not all data from the access bean is required, since it retrieves data only as required.

46. Describe Marketing subsystem and What WCS components are part of this system ?

The Marketing subsystem is a component of the WebSphere Commerce Server, and provides numerous marketing concepts to your site, designed to increase brand awareness, and to attract and retain customers. Components of the marketing subsystem provide functionality to create marketing campaigns, including customer segments and advertising; and e-mail activities.

Various components are -

1. Promotions
2. Auctions
3. eSpots
4. e Mail Campaigns
5. Hubs and Extended sites for affiliates 

47. Describe Catalog subsystem and the tables used in WCS for managing this ?

Ans. The catalog subsystem or Catalog Management 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.

Tables used for Catalog subsystem

1. CATENTRY
2. CATENTREL

48. Is it necessary to register controller command  in CMDREG table ? 

Ans. It is not necessary to enter data in the CMDREG table, but an entry should be made in the struts-config.xml. The controller command can be registered in the CMDREG table by xml and SQL query. 

49. What are the tag libraries used in WCS ? 

Ans. Core tags, sql , xml and fmt tags. 

50. What is acugload?


Ans. acugload is the utility to load the user access group in the appropriate database. 

51. What is acpnlsload ?


Ans. acpnlsload loads the XML files containing the display names and descriptions, into the appropriate databases. 

52.  What is acpextract ?

Ans. acpextract extracts the access control policy and access group information in the database and generates files that capture the information in XML format.

53. What are the tables used for Order Management ?

Ans. ORDERS, XORDERS, ORDERITEMS, XORDERITEMS, ORDADJUST, ORDIADJUST

54. What are the tables used for Catalog Management ?

Ans. CATALOG , CATALOGDSC , CATENTRY, CATENTREL, CATENTATTR, ATTRIBUTE, ATTR , ATTRVAL , ATTRDESC , ATTRVALDESC , CATENTTYPE , CATGPENREL.

55. What are the tables used for Member Management ?

Ans. USERS, MEMBER, USERREG, USERSDEMO, USERPROF, ADDRESS, ADDRESSBOOK 

56. What are different types of Promotions ?

Ans. Order , Product and Shipping.

57. What is difference between OrderItemAdd and OrderItemUpdate 
command ?

Ans. OrderItemUpdateCmd can do all that OrderItemAdd command can do. In addition, it can also update products and items in the existing order list.

58. Can we call a task command by specifying action mapping in struts ?

Ans. No, a task command is not set up to handle web requests directly.

59. Explain the trade off in using Data bean against Access bean ?

Ans. DataBean's implement more caching than a AccessBean, so potentially reduce calls to the database.

DataBean's are appropriate for use in the JSP pages that make up the site / web application as the number of instances is likely to be low and it should help control the number of transactions hitting the database.

AccessBean's are much less memory intensive, so can be more appropriate to looping processes etc.

60. Explain exception types in WCS? 

Ans. Command can throw two types of exceptions 

ECApplicationException: This exception is thrown; if the error is related to user input and it always fail. When the user enters invalid parameter, this exception is always thrown. When this exception is thrown, the solution controller does not retry the command, even if the command is specified as retriable. 

ECSystemException: This exception is thrown if a runtime exception or any WebSphere configuration error occurs. Examples of this exception are Remote Exception, Create Exception or other EJB exceptions. When this exception is thrown, the solution controller retries the command if the command is retriable and the exception was caused by either a database dead lock or database rollback. 

Subscribe to WebSphere Commerce News and Posts.
Get latest updates and posts on IBM WCS from Buggybread.com
Enter your email address:



61. What is the purpose of Bootstrap files ? 

Ans. Bootstrap files are XML files which WebSphere Commerce uses during instance creation to populate database tables with information after the schema has been created. Once the data has been loaded, you can see the preloaded information in the table. These files are used to retrieve information about the specific data, such as calculation codes and pricing policies. 

62. Explain relationship between CATENTRY and CATENTREL?

Ans. The CATENTRY_ID is the foreign key in the ORDERITEMS table and OICOMPLIST table. The CATENTRY_ID is the primary key in the CATENTRY table. The relationship of the parent and child CATENTRY_ID can be defined in CATENTREL table. The CATENTRYTYPE_ID can be Product Bean, Item Bean, Package Bean, Bundle Bean, DynamicKitBean and CatalogEntryBean. The CATENTDESC contains all the descriptive information for the CATENTRY_ID and the CATENTRY_ID is the primary key in the table.

The LISTPRICE contains the pricing information of the CATENTRY_ID. The OFFER table contains the OFFER_ID of the CATENTRY_ID. The OFFERPRICE table contains the offer price of the CATENTRY_ID and the OFFER_ID is the primary key. 

63. Explain something about ATTRIBUTE ?

Ans. The ATTRIBUTE table contains all the attribute information of the CATENTRY_ID. ATTRIBUTE_ID is the primary key. The single CATENTRY_ID can have more than one ATRRIBUTE_ID. Examples of ATTRIBUTE are like color, Internet browser, FM Radio, Blue Tooth, Warranty, Video Recorder, Music player, etc. ATTRIBUTE specifies all the features that are available for the CATENTRY_ID. THE ATTRTYPE table contains attribute type information. ATTRTYPE_ID can be STRING, FLOAT, INTEGER, DATETIME, FREEFROM, BIGINT, and ATTACHMENT. The ATTRVALUE table contains the STRINGVALUE and the FLOATVALUE description of the ATTRIBUTE_ID based on the store specific LANGUAGE_ID. 

64. Explain something about EMSPOT? 

Ans. All the Marketing spot that is created in the application will have record in the EMSPOT table. EMSPOT table consists of EMSPOT_ID, STORE_ID, NAME, DESCRIPTION and USUAGETYPE ESMAPOBJ table consists of mapping between ESMAPOBJ_ID and the OBJECT_ID. 

65. Explain about INVENTORY table ? 

Ans. The INVENTORY contains information like CATENTRY_ID, STORE_ID, FFMCENTER_ID, QUANTITY and INVENTORYFLAGS. INVENTORYFLAGS values can be as below:- 1 = noUpdate. The default UpdateInventory task command does not update QUANTITY. 2 = noCheck. The default CheckInventory and UpdateInventory task commands do not check QUANTITY. 

66. Explain something about ADDRESS and ADDRBOOK tables? 

Ans. ADDRBOOK table contains the address owned by the member. ADDRESS_ID is the primary key. ADDRESS table consists of Member own address, friend address and etc. ADDRESS_ID is the primary key; ADDRESSTYPE can be Shipping S, Billing B or Shipping and Billing SB. 

67. What are the difference between B2B and B2C ?

Ans. In B2C customer can access store directly and make online purchases whereas In B2B , Its the store business between organizations.

68. What is Store Access Bean ?

Ans. Its an access bean related to Store Table. 

69. We need to store an attribute color for few SKU. What all tables we will store information in ?

Ans. Attribute "color" will be stored as a record in tables ATTR and ATTRDESC. All possible values for this attribute will be stored in tables ATTRVAL and ATTRVALDESC. Association between Attribute , Attribute Value and Catentry will be stored in CATENTRYATTR table.    

70. Can we call multiple controller Commands from a JSP ?

Ans . Yes

71. What do you mean by optimistic locking ?

Ans. Database tables are open for read/write over entire network for all users/sessions. It results in increased throughput but results in the loss of updates during parallel access. For ex -

- User x reads a record
- User y reads the same record
- User x updates that record
- User y updates the same record


User y has now over-written the changes that User x made.



72. What is Asset Store ?


Ans. Asset stores are collections of sharable resources that can be used in other stores. An asset store is typically composed of the assets that can be used by stores, but is in itself not a functional store and does not conduct business transactions.


73. What is the relation between MEMBER tables with ORDER table?


Ans. The MEMBER_ID is the primary key in the MEMBER table and the foreign key in the ORDERS table.


74. What are different types of calculation usages used in WCS?


Ans.   WebSphere Commerce performs all calculations for one calculation usage at a time. The order of calculation usages is stored in the SEQUENCE column of the STENCALUSG database table. The entries in this table are initially populated with information from wcs-bootstrap.xml.

75. What are Controller Commands used in Member Subsystem ? 

Ans. 

UserRegistrationAddCmd for adding the user. This will insert the data into tables 

- USERS
- USERREG
- USERPROF
- USERDEMO
- ADDRESS

UserRegistrationUpdateCmd for updating the user profile.


LogOffCmd for logging out.

Customized Controller Commands in GOSP are GOSPNCIMHandShakeCmd used for authenticating the user, by hand shaking with NCIM. This command will search for user authentication token, if the authentication token is available, then the user will be allowed to sign on. 
GOSPNCIMUserRegistrationFormCmd used for creating the registration form for the user.

76.  Is it necessary to register a Controller Command in CMDREG table? 

Ans. It is not necessary to enter data in the CMDREG table, but an entry should be made in the struts-config.xml. The controller command can be registered in the CMDREG table by xml and SQL query.
 
77. What is the difference between WCParam and param implicit objects ?


Ans. WCParam is a Websphere Commerce specific implicit object. This allows to access and decrypt the the HTTP request. Param is a standard JSP implicit object, but it does not guarantee to decrypt the HTTP request.


78.  What is CommandContext ?

Ans. CommandContext is the interface in WebSphere Commerce, which contains session and user information and set in the Controller command before the execute method is called.


79.  What is use of fmt tag?

Ans. fmt tag is used to display the message in locale language.

For e.g <fmt:message key="Color" bundle="${ColorProperties}" /></a>



80.  Why JSTLEnvironmentSetup.jspf is included in jsp ?


Ans. This file retrieves and prepares the JSP page path, file path and resource bundle path which are used by other JSP’s. The EnvironmentSetup.jsp includes most commonly used attributes such as storeDir, jspDir, includeDir, bundleDir, etc.

81. What do you mean by shipping address and billing address of customer ? How do we store them in DB ?


Ans. The shipping and billing address of the customer are stored in the ADDRESS table. There are two records in this table - one is for shipping and other is for billing addresses. The ADDRBOOK_ID is the foreign key in the ADDRESS table. The ADDRESSTYPE will be S for shipping , B for billing and SB for both shipping and billing.

82. What is the difference between DataBean and AccessBean?


Ans. 
DataBean class implements SmartDataBean uses lazy fetch method. Uses appropriate AccessBean for database access. It is used in JSP.


AccessBean are light-weight simple Java Bean and it is called in the Command, to fetch all the data at once. AccessBean extends AbstractEntityAccessBean.


83.  Explain about blocking an order ?


Ans. The order will be blocked by calling task command NotifyBlockCmd or the controller command BlockNotifyCmd. When the order is blocked, the value of BLOCKED column in the ORDERS table will be 1 (means the order is blocked).




84.  What is master catalog?


Ans. Master Catalog is a centralized location to manage stores. Everything that is required for the store is present in master catalog. It is a single catalog that contains products, items, relationships and prices that is required for sale in the store.



85.  What is a fulfillment center? Can a store have a multiple fulfillment centers?


Ans. Fulfillment centers are used by stores as warehouses for shipping and receiving centers. One store can have multiple fulfillment centers associated with it.


86. What is the role of helper classes in WCS?


Ans.  Helper class is a utility class that can be used without prior coding and it reduces code redundancy.
 
87. Which method is invoked in the data bean for calling an access bean?


Ans. We can write the code to call access bean in the populate () method

88. What are Loading Utilities ?

Ans. Utilities provided by WCS for preparing and loading data into WCS Database.

89. Is it possible to retrieve data using access bean on the jsp page ?

Ans. Yes.  

90. What is the difference between WCS version 5.6 , 6.0 and 6.0.1 in relation to Struts framework ?

Ans. 5.6 doesn't use struts. 6.0 started using struts and Validation got introduced with 6.0.1.

91. What is OPTCOUNTER ? How does it work ?

Ans. OPTCOUNTER is the field used in all tables for Optimistic locking. Whenever a client updates a record in the table , WCS increments the OPTCOUNTER for that table so that this value can be compared in case the other client try to update it to see if someone else updated it in the duration between its retrieval and update.

92. What is ATTRTYPE table used for ?

Ans. It is used for storing data type of attribute values. Valid values: INTEGER, STRING, FLOAT, DATETIME, FREEFORM or BIGINT.
   
93. Explain something about EMSPOT?


Ans. All the Marketing spot that is created in the application will have record in the EMSPOT table.


EMSPOT table consists of EMSPOT_ID, STORE_ID, NAME, DESCRIPTION and USUAGETYPE


ESMAPOBJ table consists of mapping between ESMAPOBJ_ID and the OBJECT_ID.


94.  Explain something about INVENTORY table ? Whats does INVENTORY FLAGS used for ?


Ans. 

The INVENTORY contains information like CATENTRY_ID,  STORE_ID, FFMCENTER_ID, QUANTITY and INVENTORYFLAGS.

INVENTORYFLAGS column can contain values as follows -


- noUpdate. The default UpdateInventory task command does not update QUANTITY.
 

- noCheck. The default CheckInventory and UpdateInventory task commands do not check QUANTITY.

95. Name few WCS controller commands used in your application for Order subsystem ?

Ans.   

OrderCreateCmd
OrderItemAddCmd
OrderItemDeleteCmd
OrderItemUpdateCmd
OrderProcessCmd
ProcessOrderCmd
PrepareOrderCmd
PreProcessOrderCmd

OrderCancelCmd
OrderDisplayCmd



96. Name few WCS controller commands used in your application for Member subsystem ?


Ans.

PostOrgEntityAddCmd
PostOrgEntityUpdateCmd
CheckUserInMemberGroupCmd

LogonCmdImpl
DBAuthenticationCmd
LDAPAuthenticationCmd
LogoffCmd


97. Name few WCS controller commands used in your application for Catalog subsystem ?

Ans.

AttributeCreateControllerCmd
ProductPricingControllerCmd
CategoryDisplayControllerCmd
ProductDisplayControllerCmd
GetContractUnitPriceCmd
 

98. Name few WCS controller commands used in your application for Marketing subsystem ? 

Ans.  

PromotionCodeAddRemoveControllerCmd

AddOrderItemWithPromotionCodeOrCouponCmd
CouponAddRemoveControllerCmd

99. What are different Order Status ?

Ans. Pending , Schedule, Submit , Pending Payment Approval , Payment authorization complete ,  Approve , CSR Edit , CSR Submit , Release , Shipment, Backordered , Order Transferred ,  Cancel , Close.

100. What are the different types of Users ?

Ans. Generic , Guest and Registered.

101. What are the different roles a user can have in WCS ?

Ans. Site Administrator , Seller , Buyer , CSR , Buyer Administrator , Buyer Approver , Marekting Manager , Store Administrator , Operations Manager , Returns Adminsitrator , Cateogry Manager , Logistics Manager, Sales Manager.

102. What does Order Prepare Command do ?

Ans.

  -update order item address
  -update order item validation
  -update order item prices
  -update order item total
  -update auto added order items
  -check order inventory

  -determine prices
  -discounts
  -shipping charges
  -shipping adjustment
  -taxes
  -Lock the order

  -ensure all orderitems are buyable
 

103.  What are the steps to Publish a Controller Command as a Web                     Service ?

  • Identify the business logic that you want to expose as a Web service.
  • Identify the controller command that represents this business logic. If it is not available, then create a new controller command. You can write new commands to call a collection of existing commands.
  • Identify the mandatory and optional parameters that this command requires.
  • Create a WSDL description for the Web service.
  • Register the WSDL description.
  • Write a JSP page to compose a response.
  • Deploy the service. This includes the deployment of related files and resources. In case of a new command, you must deploy and register it in the WebSphere Commerce command registry.
Try a Websphere Commerce Test

Check more Websphere Commerce links