It really depends on what you are looking at. Some better on ship some better at port. Best thing to do is take the ships price list with you hen you go ashore, then you can compare if what you find ashore is cheaper then buy it.
Star Princess 2005, Sun Princess 2005
Caribbean Princess 2006, MSC Lirica 2006 , NCL Pearl 2007, Majesty of the Seas 2008, Carnival Destiny 2008, MSC Lirica 2009, Carnival Valor 2009,Carnival Legend 2010, Carnival Liberty 2010,Carnival Fantsay 2011,Carnival Valor Feb 2012, MSC Poesia Dec 2012, MSC Poesia April 2013, Carnival Legend Nov 2013, MSC DIVINA Jan 2014, MSC Divina Oct 2014, Carnival Liberty Jan 2015, MSC Divina Apr 2015, Carnival Ecstasy Oct 2015, NCL Star Jan 2016