Использовать хэш как идентификатор в таблице, помимо хэша там хранить и сами товары, вместо того чтобы их хранить сессии и куках, а в сессии хранить только количество и общую цену товаров. Хранить хочется именно в БД все корзины, чтобы собирать информацию
Так ip мне понадобится только для того чтобы отличить пользователя в первый раз, сохранив его IP в md5 или sha1 у него в куки на 30 дней, и потом находить его корзину, уже будет не важно какой у него IP