You already said that. How do you identify items? By a generated integer? The simple answer would be new g_ItemBuyTimestamp[ MaxPlayers ][ MaxItems ]. When a player buys an item you just do g_ItemBuyTimestamp[ Id ][ ItemId ] = get_systime(). Then on menu display/callback you check if g_ItemByTimestamp[ id ][ ItemId ] + 3600 < get_systime() and disable the item accordingly.
Since you want it to last this long you somehow need to save the time stamp.
Although this is really simple so I'm unsure if that's what you want.