It's not entirely clear what you are referring to here. Judging from your code
theme_path looks like a constant.
Usually when supplying/printing links to theme assets you would use
get_bloginfo('key') with one of the keys
stylesheet_directory. Basically the latter will point at the child theme and the first to the parent theme if you are using a child/parent setup. Otherwise they are identical. Alternatively you could use
get_stylesheet_directory_uri() which behaves the same way.
In any case, they will return
http://www.yoursite.com/path/to/wordpress/wp-content/themes/your-theme/, and you are responsible for appending the path with
'/images/product-icon.png' or whatever is appropriate. Thus, alternative B in your question is correct.
One side note: WordPress generally uses the terms uri or url when referring to content your browsers will load, and the term path when referring to files on the servers local file system (i.e. resources that WordPress/PHP will load in itself).