I remember some problems with large integer numbers not being recognized as numbers on load, but as strings. Can't find the thread at the moment.
What if you try (as an experiment for the moment) to force QV to treat your ID as a string by adding text to the field values, i.e. by using a concatenation
productID & '-PID' as productID
then you should also check that the strings have the same length, maybe using len() function or trim() to remove spaces in front and at the end of your characters.
Could you upload a small sample here?