You should be able to do that with just about any good shopping cart script. Layout (1) is a matter of formatting a template for the desired arrangement of all the elements; (2) Login access should be available with every script ... how else is one going to interface with it?; Off line credit card processing (3) isn't something you would even have to look for, since doing something manually wouldn't be part of any script you would use; (4) Hiding products not in stock is also very common.
If working with scripts isn't something you're comfortable with you might look at something like http://www.vstore.ca/ that lets you set this up for free.