L'aspetto fondamentale è distinguere due tipi di proposizioni subordinate con "che". Se potete togliere la parte con "che" e il significato della proposizione principale rimane completo, allora serve una virgola. Se non potete toglierla, perché quella parte specifica di quale oggetto esatto si parla, allora non ci sarà virgola.
Nel vostro esempio "Ho comprato un libro che stava sullo scaffale" - la frase ha senso anche senza la seconda parte. Ho comprato un libro, punto. E l'informazione sullo scaffale è un chiarimento aggiuntivo. La virgola qui serve. Ma se dite "Ho comprato il libro che mi hai consigliato", allora non ci sarà virgola, perché senza la specifica "che mi hai consigliato" non è chiaro quale libro intendete.
Si verifica semplicemente: provate mentalmente a togliere la subordinata. Se la proposizione principale rimane logica e completa, la virgola serve. Se senza la subordinata il significato crolla o diventa poco chiaro, allora non c'è virgola.