Вопрос был задан давно, но я, всё же, отвечу. Только что возникла такая же проблема, нагуглил этот топик, и его копию на stackoverflow :) и там и там нет ответов, может быть кому-то поможет. Решил проблему так:
var images = [];
var fr = $('.fotorama').fotorama();
var fotorama = fr.data('fotorama');
for (var i in resp.product.images) {
if (resp.product.images[i])
images.push({img: resp.product.images[i]});
}
if (fotorama) {
fotorama.load(images);
} else {
$('.fotorama').fotorama({data: images});
}
Возможно дело в том, что объект не инициализирован, а вызвав fotorama с data - мы его инициализируем корректно.