WCS Interview Questions
1. Tell me about yourself?
2. For which company you are doing your WCS project?
3. Can you tell me about current project?
4. Can you tell the about your project in technical way?
5. What are your modules in your project? How many subsystems you deal with in your project?
6. Can you explain about Order Management Subsystem, which you developed in your project?
7. What are the control commands you have worked in order management?
8. Can you list out the some of the control commands, which created your own by using existing control commands?
9. What is the need to create your own commands by using existing owns? Tell me main purpose to create your own commands?
10. Tell me the code that you have written in your controller command?
11. Can you tell me about another subsystem that is Member subsystem?
12. What you have done with member subsystem?
13. Do you know about customizing the accelerator?
14. How can you create the Admin User in Organization Console?
15. Can you explain about ACP control policies? How can you execute the ACPcontrol policies?
16. Suppose one user login into our site. He selected some of items and he has given the order. After two months, how can you check the status of the Order?
17. Are you comfortable with SQL Queries?
18. I want to collect user email id’s whose email id ends with @and particular company name.com. Then how can you give SQL query to Database in WCS?
19. I want to know the particular member _id. Then tell me the relation between MEMBER table with ORDER table.
20. What is your production system?
21. Are you comfortable with Unix and AIX System?
22. What is the coding that you have developed?
23. What kind of tables did you use?
24. Setting up the staging server?
25. Migration from WCS 5.1 to WCS 5.6
26. About JSTL?
27. Did you use both JSTL and Scriptlets in the JSP’s that you have developed?
28. What kind of caching did you use for your JSP’s?
29. Do you know about Dynacache?
30. About CSS and its importance?
31. What is a task command?
32. How do you call a task command from a controller command? And what is the syntax?
33. How many types of promotions?
34. How can you apply promotions to your catalog products?
35. Explain about total flow of Task Command Execution?
36. For creating a Controller Command, we register Controller Command into CMDREG table? Is it necessary to register in that table? What is the main purpose to register in CMDREG table?
37. For Forget password how can you tell that password to user? Tell me the total scenario about that?
38. Have you done any subsystems in your project? What are they?
39. Can you tell me the scenario for status of a particular product in Order Management? And what are the tables you used in this scenario?
40. Can you list out some of the Controller Commands for giving the promotions to products, which you have been used? And explain the scenario?
41. Can you explain the some of the Controller Commands for Order Management, which you have been used in your project? And also explain related tables?
42. Have you created your own tables in your project? And List out them?
43. Can you list out the tag libraries in WCS?
44. What is the purpose to use fmt tag library in WCS?
45. How can you do Internationalization in WCS using fmt tag library? Tell me total flow of execution? What are the files to modify for that purpose?
46. How can you take shipping address and billing address from customer? Explain?
47. Are you familiar with Views and commands in WCS?
48. What are different models in WCS and use of the models?
49. Do you know about .sar files?
50. What is the use of SAR file?
51. What is the difference between Data Bean and Access Bean?
52. Can we use Access Bean in JSP page?
53. What is the use of Access Bean?
54. Why can’t we use an Entity Bean without using an Access Bean?
55. What are the Types of Data Beans?
56. Explain about the types of Data Beans?
57. Why do we use properties files?
58. What are the types of properties files in WCS?
59. When we insert a JSP page in the WCS what do we need to do?
60. How do we use our Data Bean in our JSP?
61. Can you tell me the attributes used in UseBean tag?
62. What is the difference between Include and import of a JSP page?
63. How do you call JSP’s?
64. How do you call a controller cmd from the JSP?
65. What is the need of the Data Bean in the JSP?
66. How to create a Controller command?
67. Do you know about B2B and Extended sites?
68. Can you tell me about extended sites? How they are used?
69. Is there any extra plug-ins should we use for creating Extended sites?
70. Before being a WebSphere commerce consultant what are the other projects did you work?
71. In what version of Commerce did you work?
72. Do you know about multi-channel in WCS?
73. How to stop caching jsp at run time?
74. What are the Controller commands using in ordering an item?
75. Elements in Access control policy?
76. How do we use this policy file? How to run this policy file in remote database?
77. What are table you worked on while working access control policy?
78. How to enable Dyna caching?
79. What is Difference between http and https?
80. What are the ways to call data bean in jsp?
81. What is Command Context?
82. Difference between B2C and B2B?
83. Can we use Access Bean in JSP page?
84. What is Store Access Bean?
85. What is the request flow in WCS?
86. Tell me about trading subsystem?
87. How will you create a controller command and what are the methods in Controller Command?
88. What is the use of the isGeneric ()?
89. How do you switch to the database Oracle9i in WCS?
90. How will retrieve data from three or more tables in your program in WCS?
91. Tell the steps that you will follow when an error occurs at the time of staging your project on the stating server?
92. Does batch process come under WCS or testing (this was posted after I explained him about the batch process is all that I create a batch file and test it as a customer)?
93. Explain some thing about display pages (after I explained him about the catalogs)?
94. Tell me something about OPT COUNTER?
95. Tell me something about asset store?
96. About search engine optimization?
97. Functional architecture?
98. Struts usage?
99. Can u call multiple control commands?
100. Explain you role in maintenance of commerce application & fixing bugs?
101. How can we customize the catalog?
102. Installation, Administration, Application Deployment, Problem determination & performance tuning WebSphere commerce suite?
103. What is the difference between a site and a store?
104. What do you mean by Asset Store?
105. What is the use of entity bean?
106. What do you mean by Optimistic Locking and what is its purpose?
107. What loading utilities have u worked with (in my second project)?
108. Have you implemented Web Services in your module?
109. What is a session bean?
110. What is the necessity going for session bean rather than access bean?
111. Which method is invoked in the data bean for calling an access bean?
112. Relation between three types of beans in WCS? (Data Bean, Access Bean, and Entity Bean)
113. Did you work on sales center?
114. Had you wrote any triggers and procedures in your Database?
115. Have you worked on Helper Classes?
116. What is the role of helper classes in WCS?
117. Is there any relation between helper classes and entity beans?
118. Can we call a task command directly? If ‘yes’ how we can call? If ‘no’ what is the reason?
119. By using primary key of the product and user id how can you retrieve the information from the database?
120. Tell me what are the changes you did in jsp?
121. How do you create Access Bean?
122. What is migration? How you have done that?
123. What is Migration Wizard and what are the advantages associated with Migration Wizard?
124. What are Loading Utilities? What is the use of that?
125. Real Time scenarios:
126. Assume that there are three stores (These three are of same stores i.e. whether they may be B2C, B2B etc. But all should belong to the same model). These three stores are differing in Functional aspects? Then it’s possible to use the same ControllerCmd or TaskCmd in all the three stores? We have to support that with a Real Time example?
127. In a Jsp if a developer inserts three fields and when the client used it, how will the data be loaded into the database?
128. What are Business Logic Facade and Business Context Services in Commerce Server?
129. What is Pick Packer and what actually it means?
130. For what purpose we are using the fulfillment centers? Can a store have multiple fulfillment centers?
131. How do you handle the Service Tickets that are received from the clients?
132. Have you done the payment module? Can you tell something about that?
133. How can we assign the roles to the users?
134. How you added products to sales catalog? How you added the new products to an existing catalog?
135. Did you created any E-marketing Spots? What are steps involved in creating an E-marketing spot? In what situation you have created that?
136. Did you involved in writing of any JavaScript’s for Front-End Validations?
137. Is it possible to retrieve the data from the Access bean to a JSP page?
138. What is the difference between the versions?
139. Have you worked on customization of storefront? If yes then what did you customize?
140. What are the steps involved in displaying a new product on a JSP? What are the different kinds of administrative things in WebSphere Commerce? When you add a column into the database table what changes do you need to make in your code and accelerator? Why do we use JSTLEnvironmentSetup.jspf in a jsp?
141. Do you have an idea of the Database model in Commerce? Have you ever been involved in dealing with the DB2 database in Commerce? If yes, please specify what tables you deal with and why?
142. What is guided selling?
143. Where do you write business logic in WCS?
144. What is view command?
145. What is master catalog?
1) What are the subsystems you deal in your project?
Ø 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.
2) Explain Order Management subsystem flow?
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 (P).
OrderCalculate: 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 be cancelled (X).
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.
3) Can you explain about Access Control Policies?
- A) Access control policies is the utility provided by WebSphere Commerce, to allow access to the authorized group of user to a perform set of actions on the resources present in the application. There are four main concepts in the ACP.
- Access: Allowing access to group of authorized users to which policy applies
- Actions: Actions performed by user on the resources.
- Resources: Resources may include business objects (i.e. set of commands, etc)
- Relationship: Each user can have relationship associated with it. (For e.g. a policy can apply the creator of an order can modify it and it is between the order and the user.)
The basic XML elements of the access control policy files are
- <Action>: The new action will be loaded on ACACTION table.
- <ActionGroup>: It is a group of related action and the action groups are stored in ACACTGRP table. Actions are associated with action groups in ACACTGRP table.
- <Attribute>: Attribute is defined in ACATTR table.
- <ResourceCategory>: Resource Category is defined in ACRESCGRY table.
- <ResourceGroup>: It is a set of resources and defined in ACRESGRP table.
- <Relation>: Each resource can have set of relationship associated with it and it is stored in ACRELATION table.
- <RelationGroup>: Relation group are defined in ACRELGRP.
- <Policy>: Policies are defined in ACPOLICY.
- <PolicyGroup>: Policy group are defined in ACPOLGRP.
Syntax:
acpload database_name db_username db_pwd WC_Installdir/xml/policies/acp_file_name.xml
4) What is acugload?
- A)The acugload is the utility to load the user access group in the appropriate database. This utility will load the <UserGroup>element in the MBRGRPUSG
A member group of type Access Group (-2) is for access control purposes, while a member group of type User Group (-1) is for general use.
5) What is acpnlsload?
- A)The acpnlsload utility loads the XML files containing the display names and descriptions, into the appropriate databases. To insert or update display names and descriptions for the various policy related elements run the acpnlsload script.
This script loads the following elements:
<Action_nls>, <Attribute_nls>, <ActionGroup_nls>, <ResourceCategory_nls>, <ResourceGroup_nls>, <Relation_nls>, <Policy_nls>, <PolicyGroup_nls>
6) What is acpextract?
- A)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.
7) Suppose one user login into our site. He selected some of items and he has given the order. After two months, how can you check the status of the Order?
- A)The status of the order can be checked from ORDERS table.
Select STATUS from ORDERS where ORDERS_ID=XXXXXXX;
8) I want to collect user email id’s whose email id ends with @and particular company name.com. Then how can you give SQL query to Database in WCS?
- A)The email id of the user can be found from ADDRESS table. The ADDRESS_ID is the foreign key in the ORDERS table.
So for the particular user, first take the order no and fetch the ADDRESS_ID from the ORDERS table.
Use that ADDRESS_ID to get the email id for the user. Here there can be multiple addresses like permanent address (P) and the temporary address (T) for the same user. So, fetch the address with the STATUS as P.
Select EMAIL1 from ADDRESS where STATUS=’P’ and ADDRESS_ID in (select ADDRESS_ID from ORDERS where ORDERS_ID = XXXXXXX);
If you want to search email ID directly, so run the below query.
Select * from ADDRESS where EMAIL1 like ‘%@abc.com’ OR ‘EMAIL2 like ‘%@abc.com
Where EMAIL1 stands for primary email address.
EMAIL2 stands for secondary email address.
9) I want to know the particular member _id. Then tell me the relation between MEMBER tables with ORDER table?
- A)The MEMBER_ID is the primary in the MEMBER table and the foreign key in the ORDERS table.
10) What kind of tables did you use?
- A)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
11) What are JSP programming best practices?
- A)Below are the JSP programming best practices:-
- Use JSTL in place of Java Code.
- Use commerce specific bean (<wcbase:useBean>) in place of standard bean (<jsp:useBean>) activation.
- Use commerce specific maps to access request parameters i.e. WCParam & WCParamValues.
- Use StoreErrorDataBean data bean for error handling. This can be used to display store specific error message in the jsp.
- Use appropriate includes mechanism.
ü Static include: Includes the jsp file at the compile time. <%@ include file=”filename.jspf” %>
ü Dynamic include: Includes the jsp file at run time, while the request is getting processed. <c:import url=”filename.jsp”> … </c:import> <jsp:include page=”filename.jsp” flush=”true|false”/>
- Use .jspf extension for the JSP segments. The parent jsp should be with .jsp extension and the included jsp should be with .jspf extension.
- Use escapeXml attribute to preserve the HTML formatting. By default the value of the escapeXml will be true. When this value is true then the html special characters will be converted to standard entity codes.
For e.g. <c:out value=”${list.productPrice}”/>
Here the value is true by default, if there is any special character in the price, it will display the entity code in the UI
<c:out value=”${list.productPrice}” escapeXml=”true”/>
Here the value is false, if there is any special character in the price, it will display the special characters it is in the UI.
- Use the POST method instead of GET.
12) What are different types of promotions?
- A) 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.
Ø Discounted shipping for all the item using a selected shipping mode.
Ø Discounted shipping per item using a selected shipping mode.
13) What are different types of calculation usages used in WCS?
- A) WebSphere Commerce performs all calculations for one calculation usage at a time. The order of calculation usages is stored in theSEQUENCE column of the STENCALUSG database table. The entries in this table are initially populated with information from the language-independent bootstrap file: wcs-bootstrap.xml.
Calculation usage |
Calculation usage code |
Discount |
-1 |
Shipping |
-2 |
Sales tax |
-3 |
Shipping tax |
-4 |
Coupon |
-5 |
Surcharge |
-6 |
Shipping Adjustment |
-7 |
14) On what table promotion codes are stored?
- A)The promotions that are created through accelerator are stored inPX_PROMOTION
PX_PROMOTION_ID is the primary key
STATUS: 0 means inactive, 1 means active, 2 means mark for deletion, 3 means suspended and 4 means Obsolete.
All the promotion related information that is created from accelerator is stored in PX_PROMOTION table.
PX_PROMOTION contains PX_PROMOTION_ID,
CALCODE and CLCDPROMO are the two tables that can be used to populate the promotion code.
CALCODE consists of CALCODE_ID, STOREENT_ID, CALUSAGE_ID, CODE, DESCRIPTION, START_DATE, END_DATE, and LAST_UPDATE.
CLCDPROMO consists of CALCODE_ID and PX_PROMOTION_ID. NAME, CODE, STOREENT_ID, START_DATE, END_DATE, XML_PARAM, STATUS and etc.
ORDADJUST contains information of the promotions that are applied to the order.
ORDADJDSC consists of ORDADJUST_ID, LANGUAGE_ID, and DESCRIPTION.
ORDIADJUST consists of ORDIADJUST_ID, ORDERITEMS_ID, ORDADJUST_ID and AMOUNT.
ORDPROMOCD consists of ORDERS_ID and CODE
PromotionCodeAddRemoveControllerCmdImpl and PromotionEngineOrderCalculateCmdImpl are used to add the promotion code to the order.
15) How do you call a task command from a controller command? And what is the syntax?
- A)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 ());
cmd.setRequestProperties (requestProperties);
cmd.execute ();
16) What is controller commands used in Member Subsystem?
- A) UserRegistrationAddCmdfor adding the user. This will insert the data of the user in USERS, USERREG, USERPROF, USERDEMO and ADDRESS table.
UserRegistrationUpdateCmd for updating the user profile.
LogOffCmd for logging out user session.
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.
17) For creating a Controller Command, we register Controller Command into CMDREG table? Is it necessary to register in that table? What is the main purpose to register in CMDREG table?
- A)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.
To register a new controller command, or a new task command, in the CMDREG table, create an entry in the XML file for each new or customized controller or task commands, using the following example of a task command as your guide:
<cmdreg storeent_id="@storeent_id_1" interfacename= " com.ibm.commerce.payment.commands. DoPaymentCmd " classname = "com.ibm.commerce.payment.commands .DoPaymentMPFCmdImpl"/>
To register by SQL query
insert into CMDREG (storeent_id, interfacename, description, classname) values (0,' com.ibm.commerce.payment.commands. DoPaymentCmd ', 'Payment commands for all shops', ' com.ibm.commerce.payment.commands .DoPaymentMPFCmdImpl ').
If there is no entry for the command in the CMDREG table, then controller will check defaultCommandClassName in the interface.
public interface GOSPShipmentNotificationServiceCmd extends ControllerCommand {
public static final String NAME = GOSPShipmentNotificationServiceCmd.class.getName();
public static final String defaultCommandClassName = GOSPShipmentNotificationServiceCmdImpl .class.getName();
}
18) Can you list out some of the Controller Commands for giving the promotions to products, which you have been used? And explain the scenario?
- A)Our custom commandGOSPPromotionCodeAddRemoveCmdImpl inherits the out of box command PromotionCodeAddRemoveControllerCmdImpl to apply promotion in the shopping cart page.
Promotion codes are managed by the PromotionCodeManager component of the PromotionEngine. This is a configurable component. The default promotion code manager, WCSPromotionCodeManager, simply records promotion codes entered for an order in the ORDPROMOCD table. All promotion code managers must implement the com.ibm.commerce.marketing.promotion.code.PromotionCodeManager interface.
19) Can you list out the tag libraries in WCS?
- A) Core tags, sql tags, xml tags and fmt tags.
20) What is Dyna caching?
- A)Caching improves response time and reduces system load to improve the performance of world-wide web applications.
The Dyna caching service includes:-
ü Servlet or JSP result cache, caching the fragments of JSP or whole page.
ü Command cache to cache business objects.
ü Edge Side Include (ESI) caching to cache, assemble and deliver the dynamic web pages at the edge of enterprise network.
ü Invalidation support to ensure that the content of cache is correct. Invalidation can be rule-based, time-based, group-based and programmatic.
ü Replication support, to enable cache sharing and replication on multiple servers.
ü Disk offload capability, to enable and storing large amount of data, preserve the content in the application server until it is restarted or stopped.
The caching specific behaviour of the WCS is specified in the cachespec.xml present in the Stores.war.
Dyna caching service, places the objects in the cache which is identified by unique cache-id’s (<cache-id> rules) defined in the <cache-entry> elements.
Once the objects with particular cache-id are in the cache, then the subsequent request for the same cache-id is served from the cache.
Cached objects are removed from the cache according to the information provided in the <cache-entry> elements such as <time-out>, <invalidation> and <priority> elements.
When the available cache memory is full, LRU algorithm removes the cached objects with the lower priority.
The <dependency-id> and <invalidation> elements defines the rule to generate dependency-id’s and the invalidation-id’s, which together specifies certain objects should be removed from the cache after the request is processed.
The <inactivity> element is used to specify a time to live (TTL) value for the cache entry based on the last time that the cache entry was accessed.
Caching strategy
When determining a caching strategy for WebSphere Commerce, the key issues that need to be resolved are:
Ø Which pages should be cached
Ø Where caching should take place
Ø Cache full pages or page fragments
Ø How to invalidate the cached data.
Which pages should be cached?
When determining which Web pages should be cached, good candidates for caching are pages that:
Ø Are accessed frequently
Ø Are stable for a period of time
Ø Contain a majority of contents that can be reused by a variety of users
The following <cache-entry> example uses a <cache-id> element to cache results created by a JSP and generate a cache ID with two components, "storeId" and "catalogId", obtained from parameters in the request object:
<cache-entry>
<class>servlet</class>
<name>/ToolTech/. . ./StoreCatalogDisplay.jsp</name>
<property name="save-attributes">false</property>
<property name="store-cookies">false</property>
<timeout>3600</timeout>
<priority>3</priority>
<cache-id>
<component id="storeId" type="parameter">
<required>true</required>
</component>
<component id="catalogId" type="parameter">
<required>true</required>
</component>
</cache-id>
...
</cache-entry>
21) What is the difference between WCParam and param implicit objects?
- A) WCParamis 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.
When you don’t want to encrypt the request parameters, then following configuration needs to be done.
<NonEncryptedParameters display="false">
<Parameter name="storeId" />
<Parameter name="langId" />
<Parameter name="catalogId" />
<Parameter name="categoryId" />
<Parameter name="productId" />
</NonEncryptedParameters>
22) What are the different ways of Cache Invalidation?
A)
Ø Invalidating the cache using timeout: This can be done by adding <timeout>10</timeout> in side of <cache-id> element. The timeout value will be in seconds. If the default value is 0, then the cache will not expire.
Ø Using Command invalidation: Command based invalidation means invalidation rules are executed upon the execution of the command that extends CachableCommandImpl WebSphere Command framework.
The invalidation id’s are constructed based on the fields and methods provided by command.
Ø Invalidating cache using dyna cache API and CACHEIVL table: WebSphere provides DynaCacheInvalidation command which is called by scheduler to process the record in CACHEIVL table.
Ø Invalidating cache using dependency trees: Using dependency id’s the cache can be invalidated.
For e.g.
<dependency-id>KitchenWare
<component id="" ignore-value="true" type="pathinfo">
<required>true</required>
<value>/CategoryDisplay</value>
</component>
<component id="parent_category_rn" ignore-value="true" type="parameter">
<required>true</required>
<value>10003</value>
</component>
</dependency-id>
23) How to use the dyna cache API not to cache the page?
- A)
Ø Not caching the whole page:
<%@ page import = "com.ibm.commerce.webcontroller. HttpControllerRequestObject" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="com.ibm.commerce.server.JSPHelper" %>
<%@ page import="com.ibm.commerce.command.CommandContext" %>
<%
CommandContext commandContext = (CommandContext)request. getAttribute("CommandContext");
HttpControllerRequestObject controllerReq = (HttpControllerRequestObject)commandContext.getRequest();
HttpServletRequest req = controllerReq.getHttpRequest();
JSPHelper.setUncacheable(req,true);
%>
Ø Not caching the fragment of page:
<%@ page import="com.ibm.websphere.servlet.cache.*" %>
<%
((ServletCacheResponse)response).setDoNotConsume(true);
%>
24) What is CommandContext ?
- A) 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.
25) What is use of fmt tag?
- A)fmt tag is used to display the message in locale language.
For e.g <fmt:message key="TERMSCONDITION122C" bundle="${termsConditionText}" /></a>
26) Why JSTLEnvironmentSetup.jspf is included in jsp ?
- A)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.
27) How can you do Internationalization in WCS using fmt tag library? Tell me total flow of execution? What are the files to modify for that purpose?
- A)To do Internationlization in WCS, following steps needs to be followed.
Ø Include JSTLEnvironmentSetup.jspf in the jsp. This is required to get the path of the properties files from the environment. The properties files are fetched based on the language id.
Ø Declare the variable name of the bundle in the jsp using the below code. <fmt:setLocale value="${CommandContext.locale}" /> <fmt:setBundle basename="${sdb.jspStoreDir}/GOSPNokiaTermsandCondition_NLS" var="termsConditionText" />
Ø Get the key from the bundle and display in the jsp. <fmt:message key="TERMSCONDITION1" bundle="${termsConditionText}" />
28) How can you take shipping address and billing address from customer? Explain?
- A)The shipping and billing address of the customer are stored in theADDRESS There will be two ADDRESS_ID 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.
The ORDERS table only contains the ADDRESS_ID of the billing address.
29) Do you know about .sar files? What’s the use of it?
- A)Store archive file (.sar) is the zip file that contains all necessary assets to create a store or site.
30) What are the business models in WCS?
- A)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.
- Extended Site: A site that allow the selling organization to provide unique storefronts for different enterprise customers.
30) What is the difference between DataBean and AccessBean?
- A) DataBeanclass implementsSmartDataBean 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.
InputDataBean retrieves data from the URL or view command attributes.
31) What are the types of Data Bean?
- A)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).
32) How do we use Data Bean in the JSP?
- A)The below code is used to get access to data bean from JSP.
<wcbase:useBean id=”orderDB” classname=”com.gosp.order.beans.GOSPOrderDataBean” scope=”request”>
<c:set value=”${orderId}” target=”${ orderDB }” property=”orderId”/>
</wcbase:useBean>
33) Explain about blocking an order.
- A)The order will be blocked by calling task commandNotifyBlockCmd 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 0indicates 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).
34) Explain Controller command programming model?
- A)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.
Ø setRequestProperties (com.ibm.commerce.datatype.TypedProperty reqParams) :
This method is invoked by the web controller to pass all the input properties to the controller command. The controller command must parse the input properties and set each individual property explicitly in this method.
Ø 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 master catalog?
- A)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.
36) What is a fulfillment center? Can a store have a multiple fulfillment centers?
- A)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.
37) What is the role of helper classes in WCS?
- A)Helper class is a utility class that can be used any where and anytime without prior coding and it reduces code redundancy.
For e.g. BaseJDBCHelper is a JDBC helper class which provides interaction with the database, such as establishing connection with the database, executing the query and closing the connection.
38) Which method is invoked in the data bean for calling an access bean?
- A)In the populate () method we can write the code to call access bean.
39) What is Optimistic locking?
- A)Optimistic locking allows you to lower the isolation level that you use in the application, so that fewer locks are placed against the database assets. It allows more application to run concurrently against the same database.
40) Explain something about scheduler?
- A)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.
41) Difference between Optimistic locking and pessimistic locking?
- A)Optimistic locking improves the performance of application by reducing the isolation level of the database transactions. If two or more transaction is performing the update operation of the same row, the lock on the row will be acquired by one transaction and remaining transaction will be roll backed.
Pessimistic locking protects the integrity of the database by locking the database assets over the entire duration of the transaction. But this will affect performance of the application that is running multiple transactions at a time and becomes deadlock.
42) Explain about bundle and kits?
- A)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.
43) Explain exception types in WCS?
- A)A 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 retirable.
Ø 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 retirable and the exception was caused by either a database dead lock or database rollback.
44) What is the purpose of Bootstrap files?
- A)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.
45) What is Search Engine Optimization?
- A)Search Engine Optimization is considered to be the one of the most important channel that can be reached to the customer.
Dynamic Database driven URL such as those generated by WebSphere Commerce contains stop characters like (?, %, &) that can be overwhelm by search engine crawlers. For this reason, search engine limit the URL’s that they index. To overcome this limitation, WebSphere Commerce provides the functionality to help improve the results of search engine indexing.
Crawler is software that is used by search engine to index the page that is available in the website for public.
In WebSphere Commerce, we need to create static URL for the database driven dynamic URL.
For e.g.
The dynamic URL that generates the request as shown below:-
/TopCategoryDisplay?storeId=10500&languageId=-1&categoryId=56723&catalogeId=21789
This dynamic URL contains the stopping characters and it will prevent the indexing by the search engine crawlers.
To avoid this, we need to create a static URL as below:-
/CategoryDisplay_10500_-1_56723_21789
The static URL for all the request can be created by making an entry in the SEOUrlMapper.xml
<mappings>
<pathInfo_mappings separator=”_”>
<pathInfo_mapping name=”CategoryDisplay” requestName=” TopCategoryDisplay”>
<parameter name=”storied” />
<parameter name=”languageId” />
<parameter name=”categoryId” />
<parameter name=”catalogId” />
</pathInfo_mapping>
</pathInfo_mappings>
</mappings>
When search engine analyze the page, it gives more weightage to the page title, page header and the page first sentence of the body.
46) Explain relationship between CATENTRY and CATENTREL?
- A)The CATENTRY_ID is the foreign key in theORDERITEMS table and OICOMPLIST
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.
47) Explain something about ATTRIBUTE?
- A)TheATTRIBUTE 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.
48) Explain something about EMSPOT?
- A)All the Marketing spot that is created in the application will have record in theEMSPOT
EMSPOT table consists of EMSPOT_ID, STORE_ID, NAME, DESCRIPTION and USUAGETYPE
ESMAPOBJ table consists of mapping between ESMAPOBJ_ID and the OBJECT_ID.
49) Explain something about INVENTORY?
- A)TheINVENTORY 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.
50) Explain something about ADDRESS and ADDRBOOK?
- A) ADDRBOOKtable 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.
51) Explain SHIPMODE, SHIPINFO, SHPMODEDSC, SHPMODCLCD, SHPARRANGE, and SHPJCRRULE.
- A) 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.
-
Question 1. What Is The Difference Between Controller And Task Command.?
Answer :
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:
- 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.
-
Question 2. What Is Difference Between Product And Item?
Answer :
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.
-
Question 3. How Promotions Are Created And Stored In Wcs?
Answer :
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
-
Question 4. What Is Purchase Condition And Reward In Promotions?
Answer :
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.
-
Question 5. What Steps Are Needed To Create A New Promotion Type?
Answer :
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. -
Question 6. How Can You Check The Status Of An Order?
Answer :
By querying the STATUS from the ORDERS table.
-
Question 7. How Can We Remove A Jsp Page From Getting Cached?
Answer :
Remove the jsp entry from cachespec.xml.
-
Question 8. Where Do We Store Db Configuration And How Can We Change That ?
Answer :
wc-server.xml stores the DB configuration. We can either change it manually or by using setdbtype command.
-
Question 9. What Are The Steps To Create A New Business Policy?
Answer :
Step 1 - Create a new policy definition by adding record in tables POLICY, POLICYDESC.
Step 2 - Associate the new policy with its terms and conditions by adding a record in relationship table POLICYTC.
Step 3 - Associate commands to the new policy by adding records in POLICYCMD.
Step 4 - Add reference to the policy in the repective contract xml file.
-
Question 10. How Access Control Policies Are Implemented In Wcs ?
Answer :
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.
-
Question 11. What Are The Design Patterns Used In Wcs?
Answer :
MVC, Display Design and Command.
-
Question 12. What Information Is Stored In Cacheivl Table And How Does This Help In Caching ?
Answer :
This table records the changes to product or category information in the database. This is referred by WCS for invalidating dynacache.
-
Answer :
SKU is Stock keeping unit. Items are referred to as SKU as they are the narrowest identifier for which business needs to track quantity.
-
Question 14. Why Can't We Add Products While Specifying Target Catalog Entry In Promotions?
Answer :
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.
-
Question 15. What Is B2c And B2b Business Model?
Answer :
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.
-
Question 16. Explain Concept Of Hubs And Extended Site Stores?
Answer :
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.
-
Question 17. What Are Espots And How Do We Manage Them?
Answer :
eSpot is the mechanism in WCS to schedule and display dynamic content. Content management for these slots are done through Accelarator.
-
Question 18. What Is Dynacache And Role Of Cachespec.xml In Wcs ?
Answer :
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.
-
Question 19. Can We See Objects Cached In Dynacache?
Answer :
We can see , monitor and can even change dynacache manually but for that we need to install a seperate application provided by WCS.
-
Question 20. How To Enable Cross Site Scripting Protection In Wcs ?
Answer :
By specifying XSiteScriptingProtection within wc-server.xml. Prohibited characters and attributes are specified within XSiteScriptingProtection to protect the application from any XSS attach.
-
Question 21. What Is An Asset Store ?
Answer :
Asset stores are collections of sharable resources (business artifacts, business processes and storefront assets) that can be leveraged in other stores.
-
Question 22. What Is An Attribute Dictionary And What Are Its Benefits ?
Answer :
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.
-
Question 23. What Is Sar File ?
Answer :
It's the Store Archiver that holds the store Assets in the compressed form.
-
Question 24. What Is Suborder ?
Answer :
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.
-
Question 25. What Is Fulfillment Center ?
Answer :
Fulfillment center or Delivery Center is the store or warehouse from where the actual delivery of merchandise takes place.
-
Question 26. What Is A Retriable Command?
Answer :
A retriable command is a controller command that can re-execute itself after encountering a system-level exception during the command execution.
-
Question 27. What Are The Benefits Of Smart Bean?
Answer :
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.
-
Question 28. Describe Marketing Subsystem And What Wcs Components Are Part Of This System?
Answer :
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 -
Question 29. Describe Catalog Subsystem And The Tables Used In Wcs For Managing This ?
Answer :
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 -
Question 30. Is It Necessary To Register Controller Command In Cmdreg Table?
Answer :
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.
-
Question 31. What Is Acugload?
Answer :
acugload is the utility to load the user access group in the appropriate database.
-
Question 32. What Is Acpnlsload ?
Answer :
acpnlsload loads the XML files containing the display names and descriptions, into the appropriate databases.
-
Question 33. What Is Acpextract ?
Answer :
acpextract extracts the access control policy and access group information in the database and generates files that capture the information in XML format.
-
Question 34. Can We Call A Task Command By Specifying Action Mapping In Struts ?
Answer :
No, a task command is not set up to handle web requests directly.
-
Question 35. Explain The Trade Off In Using Data Bean Against Access Bean?
Answer :
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.
-
Question 36. Explain Exception Types In Wcs?
Answer :
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.
-
Question 37. What Is The Purpose Of Bootstrap Files?
Answer :
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.
-
Question 38. Explain Relationship Between Catentry And Catentrel?
Answer :
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.
-
Question 39. Explain Something About Emspot?
Answer :
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.
-
Question 40. What Are The Difference Between B2b And B2c?
Answer :
In B2C customer can access store directly and make online purchases whereas In B2B , Its the store business between organizations.
-
Question 41. What Is Store Access Bean?
Answer :
It's an access bean related to Store Table.
-
Question 42. We Need To Store An Attribute Color For Few Sku. What All Tables We Will Store Information In?
Answer :
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.
-
Question 43. What Do You Mean By Optimistic Locking?
Answer :
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 example:-
- 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.
-
Question 44. What Is Asset Store?
Answer :
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.
-
Question 45. What Are Different Types Of Calculation Usages Used In Wcs?
Answer :
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.
-
Question 46. What Are Controller Commands Used In Member Subsystem?
Answer :
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.
-
Question 47. What Is Commandcontext?
Answer :
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.
-
Question 48. Why Jstlenvironmentsetup.jspf Is Included In Jsp?
Answer :
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.
-
Question 49. What Do You Mean By Shipping Address And Billing Address Of Customer ? How Do We Store Them In Db?
Answer :
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.
-
Question 50. Explain About Blocking An Order?
Answer :
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).
-
Question 51. What Is Master Catalog?
Answer :
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.
-
Question 52. What Is A Fulfillment Center? Can A Store Have A Multiple Fulfillment Centers?
Answer :
Fulfillment centers are used by stores as warehouses for shipping and receiving centers. One store can have multiple fulfillment centers associated with it.
-
Question 53. What Is The Role Of Helper Classes In Wcs?
Answer :
Helper class is a utility class that can be used without prior coding and it reduces code redundancy.
-
Question 54. Which Method Is Invoked In The Data Bean For Calling An Access Bean?
Answer :
We can write the code to call access bean in the populate () method.
-
Question 55. What Are Loading Utilities?
Answer :
Utilities provided by WCS for preparing and loading data into WCS Database.
-
Question 56. What Is Optcounter ? How Does It Work ?
Answer :
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.
-
Question 57. What Is Attr Type Table Used For ?
Answer :
It is used for storing data type of attribute values. Valid values: INTEGER, STRING, FLOAT, DATETIME, FREEFORM or BIGINT.
-
Question 58. Name Few Wcs Controller Commands Used In Your Application For Member Subsystem?
Answer :
- PostOrgEntityAddCmd
- PostOrgEntityUpdateCmd
- CheckUserInMemberGroupCmd
- LogonCmdImpl
- DBAuthenticationCmd
- LDAPAuthenticationCmd
- LogoffCmd
-
Question 59. What Are Different Order Status?
Answer :
Pending , Schedule, Submit , Pending Payment Approval , Payment authorization complete , Approve , CSR Edit , CSR Submit , Release , Shipment, Backordered , Order Transferred , Cancel , Close.
-
Question 60. What Are The Steps To Publish A Controller Command As A Web?
Answer :
- 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.
Q. What is the Purpose of Access Control Policy?
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.
Q. Differentiate between Product & Item?
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.
Q. What do we understand by purchase condition followed by rewards in online promotions?
A purchase is a condition that has to be fulfilled before a promotion condition can be applied, whereas rewards are the benefit, which is forwarded to the customer. E.g., Promotion is "Buy 2 Units (Quantity) of Item X, Get the Item Y is Free" Purchase condition, in this case, is the inclusion of 2 qty of Item X in the Cart. Reward, in this case, is one unit of Y.
Q. What do you understand by Catalogue Subsystem?
Catalog Subsystem consists of all the logic and data applicable to an online store, exhibiting groups, entries, and any relationships amongst them. It helps in creating a personalized list and supports navigating within the online store too. It has certain restrictions and has a structure of a tree and not like a cycle.
Q. How many Types of Catalogue are there? Define them.
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.
Q. What are the elements in Promotion engine?
A series of configurable elements comprises a Promotional engine. These configurable elements are specified in a XML file, better known as WCSPromotionEngineConfig.xml. The configuration of a promotional engine is set as per the Web Sphere Commerce instance. It is impossible to have various configurations for same online stores in the same instance. Promotion engine estimates promotions for different customers while they purchase. The estimation process has many stages and involves various elements of the promotion engine like PromotionSequenceBuilder, PromotionAgendaBuilder, etc
Q. What is PromotionSequenceBuilder?
After the agenda is built in the promotional engine, it invokes the registered user to create a promotion context in PromotionContextFactory. Following this, the promotion engine invokes PromotionSequenceBuilder to classify the promotions in the Agenda and decide the sequence of evaluating the promotions. Once the sequence is finalized, the initialization phase of the promotion engine is completed.
Q. What is PromotionAgendaBuilder?
PromotionAgendaBuilder is set with promotion engine and is invoked to build an agenda, similar to the table that consists of a promotional list awaiting evaluation, & other applicable policies for every single promotion.
Q. Describe Marketing subsystem?
Marketing subsystem is an essential element of the WebSphere Commerce Server and offers various marketing tools for the online store. These tools are designed to promote brand awareness, attract, and retain existing customers. Elements of this subsystem provide the functionality to generate campaigns, including customer segments, advertising; & mail activities.
Q. What do you understand by E-Marketing Spots?
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.
Q. What is Web Sphere Commerce Trading Subsystem?
This subsystem handles trading agreements, which are used to manage business relationship between a buyer and seller organization. Three basic types of trading agreement available in Web Sphere commerce, which are:
Business Accounts
Request for Quotes(RFQ)
Contract
Q. What is the process of creating a business account?
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.
Q. Explain Hubs and Extended stores?
Products and services sold with the help of partners and affiliates feature themselves in Hub and Extended stores. Hub is the centralized site around which all extended stores are generated by the respective partner also known as an affiliate. Storeowner performs the administration for extended site whereas overall control of merchandises remains with the site.
Q. Describe the benefits of Smart bean?
Lazy fetch method to retrieve its data is known as Smart data bean. Data bean offers efficient performance in situations where an entire lot of data from the access bean is not required, and it retrieves the needed data accordingly.
Q. What is command data bean?
Command data bean functions after a command to pull its data and is lightweight data bean. The command fetches all the characteristics of the data bean at once, irrespective of whether the JSP page requires them. As a result, JSP pages uses a selection of attributes of command data bean that may be costly in terms of time.
Q. What is EJB copyHelper?
Access bean uses a copyHelper, which reduces the number of calls to the organizational bean when commands get the bean attributes. One single call to the organizational bean is needed when reading or writing various attributes of the organizational. Copy helper object lies within the access bean. Getter and setter technique is allotted to the copy helper object instead of the remote bean object.
Q. Explain Order Management flow in WCS?
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.
Q. What do we understand by Optimistic Locking?
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 simultaneously, then the transaction is cancelled and the command may be initiated in a new transaction, if found appropriate.
Q. What do you understand by Calmethods?
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.
Q. What Is Fulfilment Center?
Fulfillment centers are the stores, which are used as inventory warehouses & shipping and receiving centers. Any store can have one or many fulfillment centers.
Q. What do we understand by Attribute Dictionary?
Attribute dictionary is a set of familiar attributes with their values, which can be recycled by many products. Management of Attribute tool in Management Center offers business users the capability to create, assign, update, and manage product attributes.
Q. What do we understand by dynacache and its role of cachespec.xml in WCS?
Dynacache in Web Sphere Commerce Server is the main object cache. As an alternative in creating new objects again and again , the same store objects are submitted on the basis of matching rules. Rules for caching are stored in a file called cachespec.xml.
Q. We need to store a color attribute for some SKU. In which tables will the information be stored?
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.
Explain ADDRESS & ADDRBOOK tables.
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.
Explain the similarity between CATENTRY & CATENTREL.
CATENTRY_ID is an unfamiliar key in ORDERITEMS & OICOMPLIST tables. CATENTRY_ID is the primary key in CATENTRY table. The association of the parent and child CATENTRY_ID can be described in CATENTREL table. The CATENTRYTYPE_ID can be Product Bean, Package Bean, Item Bean, Bundle Bean, and CatalogEntryBean. CATENTDESC contains all the definite information for the CATENTRY_ID. The LISTPRICE consists of the prices of the CATENTRY_ID. OFFER table consists of the OFFER_ID of the CATENTRY_ID.
Q. Explain the table ATTRIBUTE ?
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.
Explain EMSPOT precisely.
Marketing spots that are generated in the application stores them in table EMSPOT. This table contains EMSPOT_ID, NAME, STORE_ID, USUAGETYPE & DESCRIPTION.
Q. Explain all the exception types in WCS?
Command throws two types of exceptions:
ECApplicationException: This is thrown; if the error is connected to user input and will always fail. If the user enters invalid parameter, this exception is thrown. When this exception is thrown, the resolution manager does not retry the command, even if the command might be specified as retriable.
ECSystemException: This exception is thrown if there is a runtime error in Web Sphere setup. E.g. of this type of exception is known as Remote Exception, or other EJB exceptions. When this type of exception is thrown, resolution manager retries for the command, provided that the command is retriable and the error occurred by either a database rollback or database deadlock.
Q. What is the purpose of Bootstrap files?
Bootstrap files are the XML files, which WebSphere Commerce Server uses during creation of any instance to populate database tables with information after the schema has been generated. Once the data loads, we can see the preloaded information in the table. These files are generally used to retrieve information about the particular data, such as calculation codes & pricing policies.
Q. What do we mean by cross selling?
Selling of items across the stores. e.g. Store A sells the items of Store B too, other than selling it own brands. Store A become the affiliate partner of Store B. it can be cross-selling at both the ends too, enhancing each other sales
Q. What is the Purpose of Access Control Policy?
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.
Q. Differentiate between Product & Item?
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.
Q. What do we understand by purchase condition followed by rewards in online promotions?
A purchase is a condition that has to be fulfilled before a promotion condition can be applied, whereas rewards are the benefit, which is forwarded to the customer. E.g., Promotion is "Buy 2 Units (Quantity) of Item X, Get the Item Y is Free" Purchase condition, in this case, is the inclusion of 2 qty of Item X in the Cart. Reward, in this case, is one unit of Y.
Q. What do you understand by Catalogue Subsystem?
Catalog Subsystem consists of all the logic and data applicable to an online store, exhibiting groups, entries, and any relationships amongst them. It helps in creating a personalized list and supports navigating within the online store too. It has certain restrictions and has a structure of a tree and not like a cycle.
Q. How many Types of Catalogue are there? Define them.
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.
Q. What are the elements in Promotion engine?
A series of configurable elements comprises a Promotional engine. These configurable elements are specified in a XML file, better known as WCSPromotionEngineConfig.xml. The configuration of a promotional engine is set as per the Web Sphere Commerce instance. It is impossible to have various configurations for same online stores in the same instance. Promotion engine estimates promotions for different customers while they purchase. The estimation process has many stages and involves various elements of the promotion engine like PromotionSequenceBuilder, PromotionAgendaBuilder, etc
Q. What is PromotionSequenceBuilder?
After the agenda is built in the promotional engine, it invokes the registered user to create a promotion context in PromotionContextFactory. Following this, the promotion engine invokes PromotionSequenceBuilder to classify the promotions in the Agenda and decide the sequence of evaluating the promotions. Once the sequence is finalized, the initialization phase of the promotion engine is completed.
Q. What is PromotionAgendaBuilder?
PromotionAgendaBuilder is set with promotion engine and is invoked to build an agenda, similar to the table that consists of a promotional list awaiting evaluation, & other applicable policies for every single promotion.
Q. Describe Marketing subsystem?
Marketing subsystem is an essential element of the WebSphere Commerce Server and offers various marketing tools for the online store. These tools are designed to promote brand awareness, attract, and retain existing customers. Elements of this subsystem provide the functionality to generate campaigns, including customer segments, advertising; & mail activities.
Q. What do you understand by E-Marketing Spots?
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.
Q. What is Web Sphere Commerce Trading Subsystem?
This subsystem handles trading agreements, which are used to manage business relationship between a buyer and seller organization. Three basic types of trading agreement available in Web Sphere commerce, which are:
Business Accounts
Request for Quotes(RFQ)
Contract
Q. What is the process of creating a business account?
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.
Q. Explain Hubs and Extended stores?
Products and services sold with the help of partners and affiliates feature themselves in Hub and Extended stores. Hub is the centralized site around which all extended stores are generated by the respective partner also known as an affiliate. Storeowner performs the administration for extended site whereas overall control of merchandises remains with the site.
Q. Describe the benefits of Smart bean?
Lazy fetch method to retrieve its data is known as Smart data bean. Data bean offers efficient performance in situations where an entire lot of data from the access bean is not required, and it retrieves the needed data accordingly.
Q. What is command data bean?
Command data bean functions after a command to pull its data and is lightweight data bean. The command fetches all the characteristics of the data bean at once, irrespective of whether the JSP page requires them. As a result, JSP pages uses a selection of attributes of command data bean that may be costly in terms of time.
Q. What is EJB copyHelper?
Access bean uses a copyHelper, which reduces the number of calls to the organizational bean when commands get the bean attributes. One single call to the organizational bean is needed when reading or writing various attributes of the organizational. Copy helper object lies within the access bean. Getter and setter technique is allotted to the copy helper object instead of the remote bean object.
Q. Explain Order Management flow in WCS?
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.
Q. What do we understand by Optimistic Locking?
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 simultaneously, then the transaction is cancelled and the command may be initiated in a new transaction, if found appropriate.
Q. What do you understand by Calmethods?
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.
Q. What Is Fulfilment Center?
Fulfillment centers are the stores, which are used as inventory warehouses & shipping and receiving centers. Any store can have one or many fulfillment centers.
Q. What do we understand by Attribute Dictionary?
Attribute dictionary is a set of familiar attributes with their values, which can be recycled by many products. Management of Attribute tool in Management Center offers business users the capability to create, assign, update, and manage product attributes.
Q. What do we understand by dynacache and its role of cachespec.xml in WCS?
Dynacache in Web Sphere Commerce Server is the main object cache. As an alternative in creating new objects again and again , the same store objects are submitted on the basis of matching rules. Rules for caching are stored in a file called cachespec.xml.
Q. We need to store a color attribute for some SKU. In which tables will the information be stored?
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.
Explain ADDRESS & ADDRBOOK tables.
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.
Explain the similarity between CATENTRY & CATENTREL.
CATENTRY_ID is an unfamiliar key in ORDERITEMS & OICOMPLIST tables. CATENTRY_ID is the primary key in CATENTRY table. The association of the parent and child CATENTRY_ID can be described in CATENTREL table. The CATENTRYTYPE_ID can be Product Bean, Package Bean, Item Bean, Bundle Bean, and CatalogEntryBean. CATENTDESC contains all the definite information for the CATENTRY_ID. The LISTPRICE consists of the prices of the CATENTRY_ID. OFFER table consists of the OFFER_ID of the CATENTRY_ID.
Q. Explain the table ATTRIBUTE ?
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.
Explain EMSPOT precisely.
Marketing spots that are generated in the application stores them in table EMSPOT. This table contains EMSPOT_ID, NAME, STORE_ID, USUAGETYPE & DESCRIPTION.
Q. Explain all the exception types in WCS?
Command throws two types of exceptions:
ECApplicationException: This is thrown; if the error is connected to user input and will always fail. If the user enters invalid parameter, this exception is thrown. When this exception is thrown, the resolution manager does not retry the command, even if the command might be specified as retriable.
ECSystemException: This exception is thrown if there is a runtime error in Web Sphere setup. E.g. of this type of exception is known as Remote Exception, or other EJB exceptions. When this type of exception is thrown, resolution manager retries for the command, provided that the command is retriable and the error occurred by either a database rollback or database deadlock.
Q. What is the purpose of Bootstrap files?
Bootstrap files are the XML files, which WebSphere Commerce Server uses during creation of any instance to populate database tables with information after the schema has been generated. Once the data loads, we can see the preloaded information in the table. These files are generally used to retrieve information about the particular data, such as calculation codes & pricing policies.
Q. What do we mean by cross selling?
Selling of items across the stores. e.g. Store A sells the items of Store B too, other than selling it own brands. Store A become the affiliate partner of Store B. it can be cross-selling at both the ends too, enhancing each other sales
Comments
Post a Comment