Date time is the key here. Use the data time of price update and that of stock arrival.
Every product in your database will have a unique id or code, say product_id, every product should have only one id. As for keeping records of price change, you will need a table say price_change to keep min these 3 pieces of information:
product_id, datetime, price
Every price change should be inserted into this table as a new record.
If you do not want to have another id for every insertion, you can use the combination of the product_id + datetime to identify each price change and a particular batch of stock based on its arrival date time.