Если отсортировать по идентификатору, то потом можно просто идти по двум спискам от начала к концу и сверять их по идентификаторам товаров.
Если в свежем списке есть идентификатор, а в старом нет, то продуктов добавился, если наоборот то удалился. За счёт того что массивы отсортированы сравнение можно выполнить за один проход.