Identity columns when used as a primary key should be sequential and not repeat in a table. First, you need to make both temShoppingCart_ID and ID the unique PK to prevent duplicatation. Secondly, you will not be able to use the IDENTITY function, but rather a counter in your application for each row that's inserted for a given tempShoppingCart_ID.
In my opinion, keep the ID as an identity column like it currently is. Add a second column called LineID and make that increment per record.