@PayloadRoot(localPart = REQUEST_LOCAL_NAME, namespace = NAMESPACE_URI)
	@ResponsePayload
	public AddListResponse processSubscription( @RequestPayload AddListRequest genericRequest) {

		try {
			logger.debug("Received subscription request");
			
			try {
				logger.debug("Delegate to service");
				logger.debug("GenericRequest size: " + genericRequest.getRecord().size());
				
				for (Record record: genericRequest.getRecord()) {
					if (record.getSales() != null ) {
						commerceService.add(record.getSales());
					} 
					if (record.getInventory() != null ) {
						commerceService.add(record.getInventory());
					} 
					if (record.getOrder() != null ) {
						commerceService.add(record.getOrder());
					} 
				}
				
			}  catch (Exception e) {
				logger.error("Unable to subscribe",e);

				// Return response
				AddListResponse response = new AddListResponse();
				response.setCode("FAILURE");
				response.setDescription("Unable to subscribe");
				
				return response;
			}

		} catch (Exception e) {
			logger.error("Problem with subscription request");

			// Return response
			AddListResponse response = new AddListResponse();
			response.setCode("FAILURE");
			response.setDescription("Problem with subscription request");
			
			return response;
		}
		logger.debug("Success in subscribing");
		
		AddListResponse response = new AddListResponse();
		response.setCode("SUCCESS");
		response.setDescription("User has been subscribed");

		// Return response
		return response;
	}