Косяк номер раз - каждый раз менять ид - и на базу переиндексация хорошо не влияет, и себе лишний гемор.
Косяк номер два - каждый продукт должен иметь в прайсе артикул, уникальный ключ, если его там нет - значит что то пошло не так(хотя мы этои из первого пункта видим).
Решение - либо исправлять первое, и переписать часть кода апдейта прайса, либо второе и ввести порядок на складе и в бухгалтерии.