I am trying to fetch the content from Fredhopper by using the SmartTarget 2014 Java API. After going through the documentation, I have followed two approaches as below :
ClaimStore claims = AmbientDataContext.getCurrentClaimStore();
if (claims != null) {
Map<URI, Object> x = claims.getAll();
for (Map.Entry<URI, Object> entry : x.entrySet()) {
System.out.println("\"KEY\" " + entry.getKey()
+ " \"Value\" " + entry.getValue());
}
}
String triggers = AmbientDataHelper.getTriggers(claims);
System.out.println(triggers);
//Approach 1
QueryBuilder builder = new QueryBuilder();
builder.setMaxItems(2);
builder.addCriteria(new RegionCriteria("Homepage Promotions"));
builder.addCriteria(new PublicationCriteria(new TcmUri("tcm:0-69-1")));
builder.parseQueryString(triggers);
ResultSet fredHopperResultset = builder.execute();
System.out.println(fredHopperResultset);
List<Promotion> promoList = fredHopperResultset.getPromotions();
for (Iterator iterator = promoList.iterator(); iterator.hasNext();) {
Promotion promotion = (Promotion) iterator.next();
List<Item> itemList = promotion.getItems();
for (Item loopItem : itemList) {
System.out.println(loopItem.getPromotionID());
}
}
//Approach 2
Query query = QueryFactory.createInstance();
ResultSet rs = query.execute("fh_location=//catalog01/en_US/categories<{catalog01_tcm_0_69_1}&st_region=Homepage Promotions", "", "&sc_refererdomain=www.philips.com&st_publication=tcm:0-69-1");
System.out.println(rs.getName());
System.out.println(rs.getPromotions().size());
Promotion promo = rs.getPromotions().get(0);
for (Item item : promo.getItems()) {
System.out.println(item.getId() + item.getPromotionID());
}
System.out.println(rs.getItemsTotalCount());
I am able to print the values of Triggers and Claims sucessfully. While with Approach 1, I am getting the value of Fredhopper Resultset as Null. On accessing the logs, "SortFieldFilter.java:38 50180 Removing the field 'publicationtitle' from the sort fields. Sorting on non-live attributes is not supported. Please include this field in the tree attributes in order to sort on it".
While in approach 2, I am not getting data as expected based on the trigger-types parameters passed. Kindly provide some pointers on where I am going wrong.
Thanks.