Baby Products WebSites for New and To-be Parents
Being a mother to a toddler is a tough job, and being a shopper with a toddler is even tougher, both on you, and your little monster. After all how much shopping can one do in between stopping the little one from raking out toys from the rack, pulling on someone’s dress, tearing off packaging (of something that you don’t intend to buy, but end up buying!) and so on? From our month’s ration, half of the stuff we buy is for my daughter and the other half for both me and my husband.
All this cacophony made me switch my market visits with the online stores. I now try to buy as much as I can over the Internet and reserve the market visits for fun. Emergence of many new baby product websites make the task of buying for the little one simpler. In India, although this segment has a long way to go, some of the new players in market have started making life easier for us new parents.
Some of the websites that I found really useful:
First Cry : They call themselves “Asia’s Largest Online Baby and Kid’s Store”. Well, they certainly are largest in my house! They have a vast range of products and offer different discounts from time to time. The biggest saver being discounts on Diapers, keeping in mind the consumption in every household with infants/toddlers. Avoids me the pain in carrying the bulky packages too. By far, this website offers maximum discount on diapers as compared to any other player, be it an online store, pharmacy, retail chains like Big Bazaar, Easyday etc. First Cry also offers vouchers through various deal sites e.g. Snapdeal and Khojguru. They offer a large variety of toys for all ages from many big brands. The downside with toys here is that there aren’t too many options for lower budget. Not a great variety in clothes either.
They have a great 24/7 customer support that I’ve used many times, free shipping (orders more than Rs 200) and an option for cash on delivery (orders more than Rs 2000). Incase you are not satisfied with the product, they have a return policy too.
All in all, a decent shopping experience, saves a lot of time too.
BabyOye : Started by young parents to make life simpler for other parents! BabyOye provides many options in toys. The best part is that they have a mix of both international and Indian brands. This makes purchasing easier as they also offer items that do not pinch a hole in the pocket.
A list of useful software tools – 3
Open Source & Free Hosted Customer Service Software – Comm100
Most of the Product/Services business required customer service which enables them to handle their customers. In this open world where every opinion counts, customer service becomes very important function of any business. To manage this function businesses generally prefer to use many tools which can help them to satisfy their customer needs efficiently.
I came to know about these set of tools provided by comm100 which are open source and free of cost for any organization/business to use as customer service software. Following are the services which any business can use at comm100:
1. Live Chat Software
2. Email Tickets
3. Forum
4. Newsletter
5. Knowledge Base
All of these services are really useful to service your customer with their concerns, questions and problems. These are also very important for converting a prospect to your customer e.g. you can offer a prospect to live chat your operator who can help him to know more about your product/services.
I would like to focus more on Live chat software in this post because I liked it most and another reason is that similar services are paid services. I remember, that we used to pay considerable amount of money for these kind of software. I also liked that most of the management is web based and all the operators can also work from any workstation for Live chat. You can check complete list of features of Live chat but here I liked most:
1. Free of cost ![]()
2. Easy to start & setup, No installations(Web based).
3. Allows customizations
4. Clients available for Mobile clients like iPhone, Blackberry etc.
Before starting on using this for your business, you can also check set of screen shots provided by them. I will try to dig some more and will love to post more about other services.
10x Performance Improvements – MySql
Using Application Events – Spring framework
Spring Application contexts support a simple form of event publishing and subscription. This event mechanism can not be compared with other message queues and JMS like systems but can be useful for certain use cases like following:
1. Sending async email: While executing a user registration flow, system may want to send and email and sending this email should not stop the registration process to complete so it requires an asynchronous way to do that. Application Event can help in this situation.
2. Auditing application actions: Another use case where you do not want to stop the execution of main thread and want to audit activities in an async way.
I am trying to list classes you will need to use your own Application Events and handle them:
a) Your custom event : UserEvent, AbstractEvent. AbstractEvent is an abstract class which can be extended based on requirement. As you can see in the code, Event Id is used to call its super class which is ApplicationEvent class of Spring framework. Another variable eventContext is used to carry context parameters to the handler of event(Check different constructors of UserEvent).
public class UserEvent extends AbstractEvent {
public UserEvent(String eventId, Object eventContext) {
super(eventId, eventContext);
}
public UserEvent(String eventId, User user, String tPassword) {
super(eventId, new HashMap());
Map<String, Object> params = (Map<String, Object>) this.getEventContext();
params.put("user", user);
params.put("tPassword", tPassword);
}
}
public abstract class AbstractEvent extends ApplicationEvent {
protected String eventId;
protected Object eventContext;
public AbstractEvent(String eventId, Object eventContext) {
super(eventId);
this.eventId = eventId;
this.eventContext = eventContext;
}
public String getEventId() {
return eventId;
}
public Object getEventContext() {
return eventContext;
}
public Object getContextParams(String paramName){
if(! (eventContext!= null && eventContext instanceof Map)){
return null;
}
return ((Map)eventContext).get(paramName);
}
}
b) Publish your custom event : You will like to publish your custom event generally from the flow of execution e.g. in this case UserService or RegistrationService. Spring gives a facility to make your class able to publish Application events by implementing ApplicationEventPublisherAware interface.
By implementing ApplicationEventPublisherAware, you need to implement setApplicationEventPublisher function and Spring will automatically call set function to inject ApplicationEventPublisher instance. This instance can be used for publishing the event.
This basically invokes all listeners waiting for this kind of Event in a separate thread to make it async.
public class RegistrationService implements ApplicationEventPublisherAware{
protected ApplicationEventPublisher applicationEventPublisher;
public static final String Event_RegisterUser = "registerUser";
public void registerUser(User u) {
.......
.......
try {
applicationEventPublisher.publishEvent(new UserEvent(Event_RegisterUser, u));
}
catch(Exception e) {
logger.error(e.getMessage(), e);
}
..........
..........
}
public void setApplicationEventPublisher(
ApplicationEventPublisher applicationEventPublisher) {
this.applicationEventPublisher = applicationEventPublisher;
}
}
c) Handle your custom event : An event listener would be required to handle the event published by the service and handle it. By implementing ApplicationListener, class has to implement onApplicationEvent function where it gets the Event object with eventId and eventContext.
public class UserEventListener implements ApplicationListener<UserEvent> {
public void onApplicationEvent(UserEvent event) {
String eventId = event.getEventId();
User user = (User) event.getContextParams("user");
String tempPassword = (String) event.getContextParams("tPassword");
//Do your handling like send an email to newly added User
}
}


