Great question. I'm in about the same place as you right now. If you live in a Western country, this is easier for you than it is for me: you can open indirectly and transition most of the time.
However, if you live in an Eastern European country (like me) or the girl is in a hurry and you can't approach discretely, then direct is probably the best way. It doesn't really matter what you say as long as you're comfortable with it. Also, be confident in delivering the opener. Yesterday, I stalled and the girl brushed me off before I could really do anything.
Examples:
"Hey.. You know, I just wanted to see if you're as pretty from the front as you are from the back

And I wasn't disappointed! I'm Tempest7. You know, I often get lost in big malls, I don't know where I'm going right now. (transition into mall opener)"
^ This one worked for me a couple of times but in the final analysis, it's too long. The longer a direct opener is, IMHO, the less likely it is to come across as honest and non-scripted.
"Hey.. You know, I just wanted to see if you're as pretty from the front as you are from the back

And I wasn't disappointed! I'm Tempest7"
^ Improvement on the first opener.
"Excuse me.. My friend is gonna be checking out at X store for a few more minutes; you have a great smile, so I wanna spend that time talking to you

"
^ I like this one, it doesn't sound TOO direct or scripted when I say it.
Anyway, I'm a beginner so take that FWIW, but yeah.. direct game, work on it.