IBM WebSphere Commerce Server Interview Questions
IBM WebSphere Commerce Server Interview Questions will be very helpful for the freshers and also for experienced candidates to crack interviews.
1. What is the Purpose of Access Control Policy?
Ans: Components such as users, actions, relationships, and resources constitute access control in any Web Sphere Commerce application. Actions are the activities that users perform on the available resources. For controlling the purposes of access control, actions must be grouped into relevant groups. E.g., the common action in any online store is a view, which is invoked to display a page to the customers. Views used in the store are declared as actions and should be assigned to an action group prior allowing the access.
Two types of access control, based on policy: resource-level and command-level access control are practiced. Resource-level access control policy is applied to establish if the user needs to access the resource. Command-level access control confirms whether the user should be allowed to execute the particular command within the specified store.
2. 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 : 1. There is a url mapping for controller command whereas Task command don’t have URL mapped to them.Controller command gets invoked before the task command.
3. 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.
4. What kind of tables did you use?
Ans: In the Order management Flow following tables are used.
ORDERS, XORDERS, ORDERITEMS, XORDERITEMS, OICOMPLIST, XOICOMPLIST, RMA, XRMA, RMAITEM, XRMAITEM, RMAITEMCMP, XRMAITEMCMP, ORDADJUST, ORDIADJUST, CATENTRY, CATENTREL
In Member Subsystem, following tables are used.
USERS, MEMBER, USERREG, USERSDEMO, USERPROF, ADDRESS, ADDRESSBOOK
5. Explain SHIPMODE, SHIPINFO, SHPMODEDSC, SHPMODCLCD, SHPARRANGE, and SHPJCRRULe?
Ans: SHIPMODE – Each row of this table represents the shipmode for store entity.
SHIPMODE_ID, STOREENT_ID, CODE, CARRIER and MARKFORDELETE (0 by default)
SHPARRANGE- Each row of this table represents a ShippingArrangement, indicating that a FulfillmentCenter can ship products on behalf of a Store using a ShippingMode.
SHPARRANGE_ID, STORE_ID, FFMCENTER_ID, SHIPMODE_ID.
SHIPMODEDSC-Each row contains the language dependent description of the ship mode.
6. What do we understand by Optimistic Locking?
Ans: Optimistic Locking is an approach where rows in the database are not normally accessed simultaneously and not locked with an intention to update. When the update is ultimately made, the row is checked to ensure that it has not been updated simultaneously. If it has been updated.
7.What does Order Prepare Command do?
- update order item validation
- update order item prices
- update order item total
- update auto added order items
- check order inventory
- determine prices
- shipping charges
- shipping adjustmenttaxes
- Lock the order
- ensure all orderitems are buyable.
8. 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.
9.What are the subsystems you deal in your project?
Ans: Marketing Subsystem: The Marketing subsystem 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.
Catalog Subsystem: The catalog subsystem 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.
Member Subsystem: A member can be a user, a group of users (also known as a member group), or an organizational entity (which can be an organization, such as “IBM” or an organizational unit within an organization, such as “Electronic Commerce Division”). Business logic in the Member subsystem provides member registration and profile management services. Other services which are closely related to the Member subsystem include access control, authentication, and session management.
Registration information: Registration data for users and organizational entities can be configured to be stored in the WebSphere Commerce database or the directory server. Member group’s data can be stored only in the WebSphere Commerce database. For authentication purposes, a registered user has a unique identifier and a password. If the WebSphere Commerce database is used as registry, the unique identifier is the logon ID. If the directory server is used, the unique identifier can be a distinguished name or a relative distinguished name.
Profile management: A Site Administrator manages user and organizational entity profiles and data, including the organizations or organizational units, roles, users, and member groups within a site. In addition, a Buyer Administrator and Seller Administrator can manage users and organizational entities.Access control and authorization: Access control determines what tasks users can perform on specific resources. An access group is a group of members defined specifically for access control purposes. A Site Administrator creates, maintains, and deletes access groups for a site. A Buyer Administrator or a Seller Administrator can also manage access groups for access control policies. Access groups usually group users based on their roles, organizations, and registration status.
Security, authentication, and session management: A user can be authenticated against a WebSphere Commerce database or a directory server. WebSphere Commerce supports two challenge types: logon ID and password, and X.509 client certificate. When logon ID and password is used, a user is authenticated against the WebSphere Commerce database or a directory server. When X.509 client certificate is used, the Web server performs the authentication. WebSphere Commerce supports two types of session management: cookie based and URL rewriting.
Trading Subsystem: The trading subsystem in WebSphere Commerce provides the logic, function and data relevant for negotiating the price and quantity of a product or set of products between the buyer and seller organization. The trading subsystem includes auctions, contracts, and Request for Quote (RFQ) components that are used to carry out specific transactions between organizations.
Order Management Subsystem: The Order Management subsystem provides shopping carts, order capture, order fulfillment, inventory, and payment function support.
Order management is broadly divided into:
Order capture: Order capture provides functionality such as sales quotes and shopping carts and order submission. There are a number of ways to create shop carts and submit orders, as described in the order mechanisms section.
Order processing: Order processing is responsible for the overall coordination of inventory allocation, payment processing, releasing the order to fulfillment and tracking order status.
Inventory processing: WebSphere Commerce supports two inventory systems: Available to promise (ATP) and non-ATP. The interface to inventory is encapsulated by a single inventory task command, which in turn invokes either ATP or non-ATP task commands.
Payment processing: WebSphere Commerce Payments supports the use of payment plug-ins for offline or online payment processing.
10.Explain Order Management flow in WCS?
Ans: Following is the flow in WCS
1) OrderCreate: Creation of the order, even if there are no items available in the cart.
2) OrderItemAdd: Adding of an item into the cart after the customer selects it.
3) OrderItemUpdate: Updated in the shopping cart page, after the customer replaces the item. Order state will exhibit pending
4) OrderCalculate: Calculate the total items added in the cart.
5) OrderItemMove: Merges the current pending order to the previous order.
6) OrderPrepare: Calculates discounts, shipping charges and taxes for execution of the order.
7) OrderProfileUpdate: Update in the billing & shipping address and mode of delivery to the customer.
8) OrderProcess: Final execution of the order.
11.Differentiate between Product & Item?
Ans: Merchandise that can be sold is known as item whereas such saleable items grouped is known as Product, which shares certain characteristics. For example – Cell phones are product whereas iPhone 7 is an item. Merchandises are always attached to Stock keeping unit or items. The product has no relevance regarding quantity or stock.
10.What Is Fulfillment Center ?
Ans :Fulfillment center or Delivery Center is the store or warehouse from where the actual delivery of merchandise takes place.
12. Explain the table ATTRIBUTE ?
Ans: ATTRIBUTE table includes all the attribute information of the CATENTRY_ID. The primary key is ATTRIBUTE_ID. CATENTRY_ID may have many ATRRIBUTE_ID. E.g of ATTRIBUTE is color, FM Radio, Internet browser, Blue Tooth, Video Recorder, etc. ATTRIBUTE specifies all features that are available for CATENTRY_ID. THE ATTRTYPE table consists attribute type information. ATTRTYPE_ID can be STRING, FLOAT, INTEGER, DATETIME, FREEFROM, BIGINT, & ATTACHMENT. The ATTRVALUE table consists of the STRINGVALUE and the FLOATVALUE. Description of ATTRIBUTE_ID is specific to the store LANGUAGE_ID.
13. Explain EMSPOT precisely?
Ans: Marketing spots that are generated in the application stores them in table EMSPOT. This table contains EMSPOT_ID, NAME, STORE_ID, USUAGETYPE & DESCRIPTION.
14. What Steps Are Needed To Create A New Promotion Type?
Ans: 1.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.
15. 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.
16.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.
17. What is acpextract?
Ans: The acpextract utility extracts the access control policy and access group information in the database and generates files that capture the information in XML format. It uses an input filter XML file to specify the data to extract from the database.
18. I want to know the particular member _id. Then tell me the relation between MEMBER tables with ORDER table?
Ans: The MEMBER_ID is the primary in the MEMBER table and the foreign key in the ORDERS table.
19.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.
20.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
21.What do you understand by Calmethods?
Ans: Methods of Calculation used for the information, which is part of the calculation, calculation codes, and scales to conclude the prices of the order items. Calculations are based on the task performed within the framework to which the calculation method belongs.
22. What Is Attr Type Table Used For ?
Ans: It is used for storing data type of attribute values. Valid values: INTEGER, STRING, FLOAT, DATETIME, FREEFORM or BIGINT.
23.What are the types of Data Bean?
Ans: Data Bean is Java Bean that is used in JSP to populate dynamic data.
There are three types of Data Bean,
Smart Data Bean: Smart Data Bean uses lazy fetch method to retrieve data. This type of data bean provides better performance in the situations where not all data from data beans are required. Smart Data bean that requires access to the database should extend access bean from the corresponding entity bean and implement com.ibm.commerce.SmartDataBean interface.
Command Data Bean: Command data bean relies on the command and it is more light weight. The command data bean fetches all the data at once, regardless of whether the JSP requires them or not. Command Data Bean extends corresponding Access Bean and implements com.ibm.commerce.CommandDataBean. interface
Input Data Bean: The Data Bean implementing com.ibm.commerce.InputDataBean interface retrieves data from the URL parameters or attributes set by the View.
When a JSP page is invoked, the generated servlet populates all the attributes that matched in the URL parameters and activates the data bean by passing it to the data bean manager. Then the data bean manager invokes the data bean’s setRequestProperties () method to pass all the attributes set by the view.
The following code is required to activate the data bean.
com.ibm.commerce.beans.DataBeanManager.activate (data_bean, request, response).
24.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
25.Describe Marketing subsystem and What WCS components are part of this system ?
Ans: 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:
- e Mail Campaigns
- Hubs and Extended sites for affiliates .
26. Name few WCS controller commands used in your application for Marketing subsystem?
27.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.
28.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.
29.What is the process of creating a business account?
Ans: Creating a corporate account, we need to use Business Relationship Management tools provided in WebSphere Commerce Accelerator. Seller administrator needs to create a buyer organization by using the Console, before creating a new business account. Seller administrator needs to make sure that at least one person must be associated with the buyer organization as a registered customer. The Prerequisites for creating Account are to ensure that the participant role is assigned to the organization for which the account has been created. We should also ensure that the buyer organization that was created is the member of the registered customers. If required, we need to add the buyer organization.
30.We need to store a color attribute for some SKU. In which tables will the information be stored?
Ans: Color Attribute will be stored in tables ATTR & ATTRDESC. All the values for this aspect will be stored in ATTRVAL & ATTRVALDESC. All connections between Attribute, Attribute Value and Catentry are stored in CATENTRYATTR table.
31. Explain ADDRESS & ADDRBOOK tables?
Ans: The Table ADDRBOOK contains the address of the member. ADDRESS_ID is the primary key of this member. Table ADDRESS contains the Member own address, their friend’s address etc. The Primary key is ADDRESS_ID; whereas ADDRESSTYPE can be Shipping denoted by S, Billing B or combination of Shipping and Billing as SB.
32. 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.
33. Explain something about scheduler?
Ans: A WebSphere Commerce scheduler is a background server that schedules and launches the jobs both at the site level and the store level.
The scheduler polls the SCHACTIVE table to find the jobs scheduled to run.
Following are the value of STATE in SCHACTIVE table
- w: the job is waiting for execution
- I: the job is currently inactive.
- IF: the job has run and failed.
- R: the job is currently running.
- RF: the job is running because of previous attempt failed.
- C: the job is finished running.
- CF: the job failed to execute successfully.
- The scheduler gets the job configuration information from SCHCONFIG table. The job can be run only on WebSphere Commerce server and its clones.
The scheduler logs the status of the job in SCHSTATUS table.
The scheduler can broadcast the jobs on its clones and logs the broadcast job entries in SCHBRDCST table.
34. Explain Controller command programming model?
Ans: The new controller command should extend com.ibm.commerce.command .ControllerCmdImpl or implements abstract class or interface. While writing new controller command you must implements following methods from abstract class.
Ø isGeneric (): In WCS, there are three types of users, registered users, guest users and generic users. The generic users have common id, and that common id is used to browse to the site.
The isGeneric () methods returns true, if the user is generic and returns for registered users.
isRetriable (): This method returns true, if the command is tried even after the transaction rollback exception or not.
For e.g. the command should be retried even after the transaction rollback exception occurred during the OrderProcess. This command invokes third party payment system for authorization process. It cannot be retried, since authorization cannot be reversed. An example of command that can be retried is ProductDisplay command.
validateParameters (): This method is used to validate all the request parameters before processing.
getResources (): This method is used to implement resource level access control. If the resource level action is performed, then it returns vector which contains resource-action pair and if no action is performed then it returns nothing.
performExecute (): this method is called to perform business logic. Before calling this method, the controller command should invoke the super class performExecute () methods.
35.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. Inventory count is maintained separately for each fulfillment centers. Fulfillment includes picking, packing and shipping. Picking is the selection of products from one or more releases from a fulfillment centers, packing is the putting the products in the shipping container and shipping is sending them to customers.
36. Explain about bundle and kits?
Ans: There are different types of bundle and kits:
Prebuilt Kit: A prebuilt kit is a collection of catalog entries that cannot be sold separately. A prebuilt kit has own its price and cannot be changed once it is added to the shopping cart. Inventory of prebuilt kit is independent of its component parts.
Dynamic Kit: A dynamic kit is a group of product that is ordered as a unit. The components of kit cannot be modified in the order, but they are reconfigured by the configurator. The entire configuration must be fulfilled together.
Static Kit: A static kit is a group of product that is ordered as a unit. The components of kit cannot be modified in the order. The individual components within the order cannot be modified and must be fulfilled together. A static kit will be backorder if any of its components is unavailable. A static kit has no inventory of its own. When the static kit is purchased, the inventory of its component part is lowered.
Bundle: A bundle is a collection of catalog entries which allows customer to buy multiple merchandise with one click. The bundle components can be sold separately.
37. 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).
The record for the blocked orders exists in ORDERBLK table. This table contains the ORDERBLK_ID, ORDERS_ID, BLKRSNCODE_ID, RESOLVED (value 0 indicates not resolved and 1 indicates resolved).
The BLKRSNCODE and BLKRSNDESC table contains the reason for blocking the order.
The STORBLKRSN table contains the block reason that is available for the store. Here the RESPECTED column is used to make active the reason code (0 means off and 1 means on).
38. What are the business models in WCS?
Ans: Business model provides sample commerce solution which includes organization structure, default roles and access control policies, one or more starter stores, administrator tools and business processes that demonstrate best practices.
Consumer Direct: A store that support commerce transactions involving products, services or information directly between businesses and consumers.
B2B Direct: A store that supports commerce transactions between two business parties.
Hub: A site that enables its customers and partners to access products and services available from business partners or clients of the hub owner.
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 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.
41.What is ATTRTYPE table used for ?
42. What are the steps to Publish a Controller Command as a web service?
Ans: 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.
43. 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.
45. 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 transact
46. Explain Order Management subsystem flow?
Ans: The Order Management subsystem includes all logic and data relevant to placing, processing, and managing orders. The Order Management subsystem also deals with returns.
OrderCreate: The order will be created even though there is no orderitems in the cart
OrderItemAdd: When the customer selects the item and click on the add to the cart, then the OrderItemAddCmd will be called. The order state will be pending (P).
OrderItemUpdate: This command will be called when the quantity of the item is updated in the shopping cart page. The order state will be pending (POrderCalculate: This command will be called when the customer adds the orderitems in the cart. The order state will be pending (P).
OrderItemMove: This command merges the current pending order to the previous order when the customer places the order by signing on to the store.
OrderPrepare: It basically calculates determines the discount, prices, shipping charges and taxes for the order.
OrderProfileUpdate: This command will be called to update the billing and shipping address and ship mode of the customer.
OrderProcess: Submits the order.Here, the order can be blocked for several reasons. This may be due to manual verification of the customer.
The order payment has not been captured completely. If the full payment has been captured then the state of the order is complete (C) i.e. payment authorization is complete. When the partial payment has been captured the order state will be (M) i.e. part of the amount has been approved.
OrderScheduled: The order is released, if the order is unblocked and fulfills all the requirements. This cmd is invoked by the scheduler. The order state will be released (R). When the order will be released, message will be sent to the LSP for shipment. Once the order gets shipped, the state of the order will be shipped (s) and after that shipment confirmation mail will be sent to the ecommerce. After this the state of the order will be deposited (D).
OrderCancel: The order can be cancelled through Customer Sales Representatives, before the order is released to Fulfillment. OrderCancel can cancel orders with an order status of P, X, W, E, A, B, C, M and OrderItem not in R, S, F, and G. Here the order state will b
OrderEdit: This will be called, when the CSR is working with the order. The editor id will be assigned to the order. The order state will be CSR Edit (E). The order can be edit before the releasing the order.
47. What are different types of promotions?
There are three types of promotions.
- Order Promotions
- Percentage off
- Fixed amount Off
- Free gift with purchase
- Product Promotions
- Fixed amount off per item
- Percentage off per item
- Fixed amount off for all
- Free gift with purchase
- Buy X, get one or more items for discount
- Shipping Promotions
- Free shipping
- Discounted shipping for the order using a selected shipping mode.
48. How do you call a task command from a controller command? And what is the syntax?
Ans: Task commands are invoked from controller commands to perform the set of business operations.
SYNTAX: OrderCalculateCmd cmd = (OrderCalculateCmd) CommandFactory.createCommand (OrderCalculateCmd.class.getName(), getStoreId()))
cmd.setCommandContext (getCommandContext ());
49. What do you understand by E-Marketing Spots?
Ans: Reserved space on any online store pages is known as E-Marketing Spots, which are used for displaying the marketing information to customers. This information can be controlled in e-Marketing Spots without new development.
Following types of marketing information are displayed on E-Marketing Spots:
- Advertisements for promotions
- Recommended category
- Catalog, including merchandising associations like affiliations.
50. How many Types of Catalogue are there? Define them?
Ans: There are two types of Catalogue- Master and Sales Catalogue. Master catalog entry cannot belong to several parent categories. E.g., if we need to place an item in both men’s and women’s category, we have to put them in sales catalog.
Enhance your IT skills and proficiency by taking up the IBM WCS Training.
- Business Accounts
- Request for Quotes(RFQ)