in Magento there is a cronjob for deleting old quotes after a configurable period of time (cleanExpiredQuotes in Sales/Model/Observer.php). Without doubt a helpful feature.
Anyway, the implementation isn’t quite correct in my opinion, because it deletes all inactive quotes from the corresponding database tables and most of inactive quotes are linked to orders (saving an order inactivates the quote).
Well most of the information from the quote is copied to the order tables, but there is one table sales_flat_quote_item_option containing beside others the location of files uploaded by the customer for example for a simple product with custom options. This information is only available accessing the order’s quote.
When the quote is deleted, there is no link from the ordered item to it’s file uploaded by the customer anymore, and the URLs for downloading the files (/index.php/sales/download/downloadCustomOption/id/XXXX/key/YYYYYYYY/) are showing the 404 page, because the downloadCustomOptionAction tries to access a non-existing quote.
On the other hand any cart abandoned by customers (this are active quotes) is kept in the database forever.
Therefore my question: Shouldn’t this cronjob delete active quotes after a given period of time?
Any thoughts are appreciated.
Thanks & regards,