I can't take credit for this idea. It was suggested ~2 years ago by @BrendanJaffary It's desperately needed for clients who maintain large catalogs in Adobe Target. It was suggested to me to post this again so it's more recent.
We need to have a feature that can mass delete entities based on a filter. I manage a catalog of over 400,000 entities so running a full catalog deletion is a huge impact to the business. There is no real solution to manage your catalog as the comma delimited string for singular deletion requires the user to have a list of entityIDs to delete which they are not able to export from the catalog.
In the documentation, it states that the more entities in your catalog, the longer your criteria’s will take to process. I’ve also noticed that the larger my catalog is, the less accurate the recommendations are.
Through a recommendation of a forum user... once you filter your catalog to whatever your deletion needs are, you can override the API call in the network tab of developer tools to expand the pagesize of the call. Just simply adjust the pagesize in this network call : "target/products/productSearch.halosearch.at.json?pageSize=10". Once you have the data, you can parse through it to get all of the entityIDs, concat them into a comma delimited string and send the request off.
This is a poor solution as both the query and the delete command can't handle more than 10,000 entities at a time and requires additional development work. I tried to write an application to manage this locally but ran into CORS issues with the API. I'm sure that these APIs arent intended to handle this amount of data either.
The most ideal solution would be:
Filter the catalog by “lastModifiedDate” **Currently not an available filter but data is available in catalog**
Add any additional filters
Export the data to an Excel file for further analysis on the data as the Catalog UI lacks sorting functionality
Batch delete all of the entities within the filtered selection
Being able to filter by “lastModifiedDate” is essential as it will identify entities that haven’t been viewed by users in a long period of time, often indicating that the entity isn’t available anymore.