The 22-year-old former Scotland Under 21 player has been with Bolton Wanderers for the past couple of years and has spent loans spells with Sheffield United, Carlisle United and most recently Tranmere Rovers.
The player secured an early release from Bolton and the deal was subsequently concluded with Saints and international clearance secured.
He has trained with his new team-mates today and is likely to be on the bench at Ross County on Saturday.
Manager Tommy Wright was keen to bolster his striking options with Steven MacLean not expected to be fit until the end of February and youngster Chris Kane sent out on loan to Dumbarton.