трудно предпологать не видя скрипта, но я рискну.
на мой взгляд скрипт при наличии 2х источников производит дозакупку, по пробуй к исходному вырианту добавить контроль существования позиции -это многое прояснит.