• Entries (RSS)
  • Comments (RSS)

Compiled JSP source location in WebSphere Commerce

Posted by | Posted in WebSphere Commerce | Posted on 19-05-2011

Tagged Under : , ,

Compiled JSP source location in WebSphere Commerce.

Do you know the location of the compiled JSP source file in WebSphere Commerce? WebSphere Commerce stores all the generated Java source files from the JSP, not just the class files. This is really helpful if you want to debug your JSP code, and do not know where exactly the error occurs. The location of compiled JSP source file is

WC_INSTALL_DIR\wasprofile\temp\localhost\server1\WC\Stores.war\

WC_INSTALL_DIR is the location where you have installed your WebSphere Commerce. wasprofile is the name of your WebSphere Application Server profile. In the server environments the value will be different (for me in WebSphere Commerce Developer 7, the profile location is wasprofile)

Share

WebSphere Commerce 7 Order Flow process for Elite B2B Starter Store

Posted by | Posted in WebSphere Commerce | Posted on 02-12-2010

Tagged Under : , , ,

WebSphere Commerce 7 Order Flow process for Elite B2B Starter Store

I was doing a POC (Proof of Concept) on ATP inventory using WCS 7. One of the minimum requirements for my POC was a successful order generation and order should be in completed state. So I published an extended site store with ATP as the inventory model. Placed an order. Everything was fine till this moment. But somehow my order was not moving to the completed state. Then I realized that I need to have some scheduled jobs in place in order to move one order state from another. In this post I will explain the complete steps required to change the order’s status to shipped state. These steps worked for me. So I believe these steps works for you too. These steps were performed on WebSphere Commerce 7 Toolkit with Fix pack 1 installed.

1. Place an order. When you add an item to the cart, the order status will be ‘P’ (Pending). Once you complete the check out process, the order status will become ‘M’ (Pending payment approval). When I placed the order, I used the payment system as ‘Simple Punchout’ so that I can approve the payment from Commerce Accelerator.

2. Approve the payment. In order to approve the payment, logon to Commerce Accelerator and select your store. If your user id has the required permissions you will be able to see a Payments menu in commerce accelerator. I always use wcsadmin as my user and I never had a permission issue. To see the payments menu the minimum required roles are Customer Representative, Customer Supervisor, Seller and Sales manager. Under Payments click on ‘List installed Payment Plugins’ submenu. The list of payment plugins installed will be presented to you.

Select the payment plugin for approving the payment. In my case since I used Simple Punchout as the payment mode, I have selected SimplePunchoutPlugin from the list of options. Now click on ‘Find Pending Payments’. This will list all the orders that are pending the authorization. Select the order you want to approve and click on Change. Enter the details required. Select the transaction result as Success and click on Finish. Now if you check the order status, it will still be displayed as ‘Pending payment approval’. Ie, even though we approved the payment, it’s still not reflected in our order status.

3. Order Payment Synchronize. Now to move the approved order to the next state, we need a scheduled job. To schedule a job in WebSphere Commerce version 7 follow the below steps.
3.1. Logon to Administration console.
3.2. Select site from site/store selection window.
3.3. Go to Configuration->Scheduler
3.4. Click on New to create a new scheduled job.
3.5. Schedule a job with the following details.
Job Name: OrderPaymentSynchronize
Interval: 1800
Job Priority: 10
Start Date: Enter today’s date
Start time: 00:00

OrderPaymentSynchronize will take the orders with the status ‘M’ and check if the order has been authorized or not. If the order is authorized it will change the status to ‘C’ (Payment Approved).

Entering the start time as 00:00 will result in running the job immediately. Now the new status will be ‘C’ (Payment Approved).

4. Release the order to fulfillment. We need another scheduled job for releasing the order for fulfillment. Create an Job at store level with the following parameters.
Job Name: ReleaseToFullfillment
Parameter: commandName=ReleaseToFulfillment&storeType_1=B2C&storeType_2=B2B&storeType_3=MHS&storeType_4=RHS&storeType_5=SHS
Interval: 1800
Job Priority: 10
Start Date: Enter today’s date
Start time: 00:00

ReleaseToFullfillment job queries orders in the following states: ‘C’, ‘M’, ‘I’, ‘B’, ‘L’, ‘A’ and if the order is ready to release to fulfillment, it changes the order status to ‘R’.

Now the status of the order will be ‘R’ (Inventory fulfilled).

5. Create a pick batch. To create a pick batch logon to commerce accelerator and go to Logistics -> Pick Batches. This window will display all the pick batches currently present in the system. In our case we need to create a new pick batch. So click on Create button. A pick batch will be created and it will be available in pick batches window.

6. Create a package. Once the pick batch is ready, the item should ship to the buyer. The packaging and shipping happens in the warehouse. To create a package, navigate to Logistics -> ‘Releases Ready to Ship’ menu of Commerce Accelerator. Select the release and click on Packages. It will list the existing packages. To create a new one, click on New button and enter the details. Once the package is created, ship the item to buyer.

7. Confirm shipment. Once the item is shipped to the buyer, we need to confirm that the shipment has been sent. To confirm the shipment, navigate to Logistics -> ‘Releases Ready to Ship’ menu of Commerce Accelerator. Select the shipment you want to confirm and click on ‘Confirm Shipment’. You will get a confirmation message saying that the shipment has been confirmed. Now the status will be changed to ‘S’(shipped).

Share

Resetting a store in WebSphere Commerce Developer

Posted by | Posted in WebSphere Commerce | Posted on 19-10-2010

Tagged Under : , , ,

Resetting a store in WebSphere Commerce Developer

The initial WebSphere Commerce Developer setup contains some pre published starter store data. If you do not want to work with the pre published starter store data, you can reset the database and the workspace using resetdb utility

Syntax:
resetdb.bat

The resetdb will delete all the published stores and you will have only one store with store id 0 after running this utility. However if you want your published stores, but want to go back to the original configuration without any customizations you made, use resetstores utility.

Syntax
resetstores.bat

Refer to the following technote  if you see a MissingResorceException after reseting the stores.

http://www-01.ibm.com/support/docview.wss?uid=swg21441430

Share

Retrieving Merchant Key value from WebSphere Commerce Server

Posted by | Posted in WebSphere Commerce | Posted on 23-08-2010

Tagged Under : , , ,

Retrieving Merchant Key value from WebSphere Commerce Server

Merchant Key

The merchant key is the encryption key used in WebSphere Commerce Server. Merchant key is a 16 digit hexadecimal number that has at least one numeric character, at least one alphabetic character (a-f) with no upper case letter. The merchant key cannot contain the same character more than four times and four consecutive occurrence of the same character is not allowed. The merchant key will be present in WebSphere commerce instance xml file in encrypted format. To get the plain text version of the merchant key, place the following text in any WCS view and run it on the server.

<%
	System.out.println("Merchant Key :"+com.ibm.commerce.server.ConfigProperties.singleton().getMerchantKey());
%>
Share

Reset password in WCS

Posted by | Posted in WebSphere Commerce | Posted on 22-08-2010

Tagged Under : , , ,

Resetting user password in WCS

There will be situations where you may have forgotten the password of a user and you want to reset the password in WCS. In WebSphere Commerce all the passwords are one way encrypted with a salt and Merchant Key. The main purpose of a salt is to add more security to storing passwords. With the help of Salt during encrypting the password, WCS makes sure that two users that have the same password will not have the same encrypted string as their password.

Reset by updating DB
Resetting the password is easy if you already know the password of at least one user. For e.g.: if you already know the password of user with users_id 9000 and you want to reset the password of user with users_id = 9001, then execute the following query in the database.

UPDATE USERREG SET LOGONPASSWORD = (SELECT LOGONPASSWORD FROM USERREG WHERE USERS_ID = 9000), SALT = (SELECT SALT FROM USERREG WHERE USERS_ID = 9000), PASSWORDINVALID= (SELECT PASSWORDINVALID FROM USERREG WHERE USERS_ID = 9000), STATUS = (SELECT STATUS FROM USERREG WHERE USERS_ID = 9000) WHERE USERS_ID=9001;

Now user 9001 can login with user 9000′s password. In the above case we copied the details like salt, logonpassword etc of user 9000 to user 9001

Reset with the help of wcs_password utility.
Consider case where you do not know the password any of the users. Now to reset the password you need to generate the password by yourself. To generate the encrypted password for any string, WCS has a utility, ‘wcs_password’. wcs_password utility takes three parameter as the input. The syntax for wcs_password utility is given below

wcs_password <password> <salt> <key>

Where password is the new password, salt is the salt for the user and key is the Merchant Key

Once we provide all these details, the command will give the encrypted password in both ASCII and hex format. Take the ASCII formatted string and update the USERREG.LOGONPASSWORD column with that value. E.g.: The SQL to update the password for wcsadmin is given below

update userreg set logonpassword='output of wcs_password utility' where logonid = 'wcsadmin'

Now you can login with the new password.

The wcs_password.bat utility will be available in your bin directory.

Reset with chgwcspwd utility
The third way of resetting the password is with the help of chgwcspwd utility. This utility changes the password directly in the db. So we do not need to execute any SQL commands by our own. But this tool is available only in IBM iSeries. So I have not tried this yet. The syntax to use this utility is

chgwcspwd.sh -database <dbname> -dbHostname <db host name> -schema <schema name> -instance <instance name> -instancePwd <db password>-merKey <key> -wcsUser <wcs username> -wcsUserPwd <user's new password>
Share