A less elegant but simpler option to do this: Ability to export a csv of all products from any orders with the status of “processing”. The csv also includes the product’s category. Then the csv can be sorted in a spreadsheet or a database to create a shopping list.
Thanks lorro! To get it to work, I had to add the semi-colon after the display attribute.
.shop_table thead, .shop_table .cart_item {display:none; }
Also, the CSS hid the table header row in the Cart page, too, so I modified the Cart page template to add a new class to <thead> and forced to display it in CSS.
.shop_table_thead_cart_page {display:table-header-group !important; }