Skip to main content

How to do Email Configurations in Web sphere Commerce

Web sphere commerce allows to send email messages to customers by making use of the below mentioned steps.

Create the JSP which will be used for generating contents of the email 

For e.g.: SendEmail.jsp

Create View for the JSP in Struts-Config-Ext.xml

Make an Entry in Struts-Config-Ext.xml file for .jsp as below

< action path='/SendEmailView' type='com.ibm.commerce.struts.BaseAction'>
    < set-property property ='authenticate' value ='10001:1'/>
     < set-property property ='https' value ='10001:1'/>
< /action>

< forward name="SendEmailView /10001/-3" path="/< location of JSP file >/ TestEmail.jsp" className="com.ibm.commerce.struts.ECActionForward">
    < set-property property="implClassName"     value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommandImpl"/>
    < set-property property="interfaceName" value="com.ibm.commerce.messaging.viewcommands.MessagingViewCommand"/>
< /forward>

Make an entry in MSGTYPE table for the view name

MSGTYPE   Table: This table is used by the messaging system to store header information about the available message types.

Execute below SQL

INSERT INTO MSGTYPES(MSGTYPE_ID , MSGTDIR , NAME , VIEWNAME, DESCRIPTION)
VALUES((SELECT MAX(MSGTYPE_ID)+1) FROM MSGTYPE) , 1, '< Name of MSG>', '< View Name of JSP>', '')

INSERT INTO MSGTYPES(MSGTYPE_ID , MSGTDIR , NAME , VIEWNAME, DESCRIPTION)
VALUES((SELECT MAX(MSGTYPE_ID)+1) FROM MSGTYPE) , 1, 'SendEmail',’ SendEmailView’, 'Send Email ')

Create and run ACPLoad file for SendEmailNotifyView

< Policies>
< Action Name=" SendEmailView’" CommandName=" SendEmailView’">
< /Action>
< ActionGroup Name="AllSiteUsersViews" OwnerID="RootOrganization">
< ActionGroupAction Name=" SendEmailView’"/>
< /Policies>

Configure Email Transport Type in IBM WCS Admin Console

1    Open WCS Administrative Console go to  Site -> Configuration -> Transport.
2    Select "Email” Click Active (if it is inactive).
3    Select Email once again and click on Configure.
4    Enter Host, Enter protocol (by default SMTP, leave as it is),Enter port ( by default it will be 25) and Click "Ok"

Make an Entry in PROFILE Table for the message type

PROFILE Table: This table is used by the messaging system to store profile data. Specifically, it defines what transports are to be used for particular stores, message types, and priorities. It also holds other administrative information

1.      Open WCS Administrative Console go to Site -> Configuration -> Message Type
2.      Select Message Type from Drop Down (Display entries of MSGTYPE table )
3.      Select Transport Type - Email  from Drop Down
4.      Select Device Format  as  Standard Device Format  and Finish

Note: - This will do an entry in PROFILE table corresponding to MSGTYPE_ID which we entered in MSGTYPE table.

Use OOB  SendMsgCmd to  send email

SendMsgCmd command is having two methods of sending messages.
  •                      sendImmediate() 
  •                      sendTransacted()

public void sendImmediate():

This method sends the message immediately to recipients. The caller is blocked until the message has been sent. This method sets the sending mode to send the message and wait for a reply.

public void sendTransacted():

This method stores the message in the MSGSTORE database table. At a predetermined time, the WebSphere Commerce scheduler invokes a job that sends all messages stored in batch mode. Using this method ensures that a send occurs only after the caller has committed or terminated successfully. This method should be used if blocking a call using the sendImmediate() method cannot be tolerated.

SendMsgCmd sendMsgCmd;
try {
sendMsgCmd = (SendMsgCmd) CommandFactory.createCommand(SendMsgCmd.NAME,
getCommandContext().getStoreId());
sendMsgCmd.setMsgType("'SendEmail'");
//MSGTYPE Table entry.That is MSGTYPES.NAME column
sendMsgCmd.setStoreID(getCommandContext().getStoreId());
sendMsgCmd.setCommandContext(getCommandContext());
sendMsgCmd.setConfigData("subject", "Send email");
sendMsgCmd.setConfigData("recipient", "wcshintsandtips@gmail.com");
sendMsgCmd.setConfigData("contentType", "text/html");
final TypedProperty property = new TypedProperty();
property.put("FirstName"," WCS");
property.put("LastName","Tips");
property.put("Address","Bangalore");
//Struts Entry . That is MSGTYPES. VIEWNAME column
sendMsgCmd.compose("SendEmailView’", getCommandContext(), property);
sendMsgCmd.sendImmediate();
sendMsgCmd.execute();
} catch (Exception e) {}
}


Comments

Popular posts from this blog

How to read applied promotions codes

The below snippet will give you to read the promotions codes which are applied to order number, String orderId = "978593958"; OrderKey orderKey = new OrderKey(new Long(orderId)); PromotionArgumentSessionBeanPersistenceManager promoManager = new PromotionArgumentSessionBeanPersistenceManager(); PromotionArgument promArg = promoManager.load(orderKey); Iterator prmoExeRecds = promArg.getPromotionExecutionRecords(); while(prmoExeRecds.hasNext()) { PromotionExecutionRecord promotionExeecutionRecord = (PromotionExecutionRecord) prmoExeRecds.next(); Promotion promotion = promotionExeecutionRecord.getPromotion(); System.out.println("Name: " + promotion.getName()); System.out.println("Admin description: " + promotion.getDescription(commandContext.getLocale(), com.ibm.commerce.marketing.promotion.Description.SHOPPER_SHORT_DESC)); }

Dataload Utility

Data can be loaded into WCS tables using data load utility. WCS Data Load utility performs the following functions in a single operation: 1.                Reads the data from the input source file. 2.                Transforms the source data to Web Sphere Commerce business objects. 3.                Allocates and resolves Web Sphere Commerce business objects to physical data. 4.                Loads the physical data into the database. There are three configurations files and a input source file required to complete the data loader setup. WCS supports only CSV File Reader for other input source you have to write your own Reader Class. This means that if you are using OOB CSV Reader then your input file must be...