I have since found that the problem was down to the fact that I wasn't pushing JS objects into the array. So I changed my code to do exactly that and Amplify was quite happy to allow me to retrieve the data at the other end.
var ProductsArr = new Array();
$.each($("#container .product"), function(){
productObj = {
name: $(this).find('.prod_name').text(),
code: $(this).find('.prod_code').text(),
price: parseInt($(this).find('.prod_price').text()),
prod_id: $(this).find('.size_select').val()
};
ProductsArr.push(productObj);
});
amplify.store('product_array_to_add', ProductsArr);