druru, I went with XML mostly because I was familiar with it. (I really wanted to use YAML, but PHP doesn't have an easy library for it, and everybody said no one would know what to do with it.) While CSV is technically simpler, I wasn't sure I would be able to represent things like attributes and categories easily because you don't know how many each product is going to have. I'm sure there's a technique that most people know, but I didn't, and I didn't try to find out what it was.
I would say that the two conversion steps is only useful if you already have a way to generate a CSV file of your store. If it has all of the compatible data, I think it would be easier to make XML from that than trudging through the database again.
I agree that the importer needs to be documented. I think it's as abstract as it can get because I'm using functions like node_save() and drupal_execute() whenever the data is retrieved from the XML file. I don't think I (personally) will write any other import methods, but I think anyone who wants to can emulate what's already been done.



Joined: 08/07/2007