I'm looking for an option for importing from an XML feed rather than a CSV. I imagine this service to work as follows:
1. Like an RSS feed, daily updates from the catalog maintainer send out either then entire product catalog with updated products, or simply those products that have been updated.
2. The admin goes into Drupal, selects "Update Catalog", and then downloads the feed into Drupal, updating the database only with those nodes that have been updated (a comparison is run on every node.) Or, if only accepting update product nodes, looks at last time update was made in Drupal, then downloads all feeds between that date and the time of import and updates the database with this information.
Some design considerations to think about:
1. If the feed was the entire catalog with updates to certain products, and a comparison was made between the feed and the current product node to determine whether or not to update, then if anyone went in to manually make a change to a product in Drupal, that change would be lost unless the feed was also updated. This would be undesirable.
2. If the feed was only those updates that had been made to the product, then the times the imports are run are important. Consider the scenario where an update was taken from the XML feed on Sept 1. On Sept 3, two products are updated. On Sept 5, four products are updated. If an updated is performed in Drupal on Sept 7, the administrator would need both Sept 3 and Sept 5 feeds to get all updated products. Thus, functionality must exist such that the last import date is recorded, then between that date and the Sept 7 import, all feeds must be gathered with product changes.
Does anything like this already exist? Your advice is much appreciated.