Many people will say Union Square has the best shopping but, I disagree. I think Haight does- it has funky shops, fantastic restaurants and bars, Amoeba music, Ben and Jerry's, vintage clothing stores, and Golden Gate park is at the end of it.
Upper Haight by the park is the section of Haight you want to be in. I love hitting up all the random stores here, plus the awesome restaurants and bars. Weather permitting, a walk in the Golden Gate Park always precedes or follows such activities. And Ice Cream Bar is nearby!