I 100% agree that this should be a feature! A while back, I went through my very large inventory and got rid of a whole bunch of cards, doing bulk sales and the like. I had to do all of my inventory manipulations in an exported CSV rather than natively on Deckbox. The ability to enter in a list of cards, all from a single set / condition / language (just like the bulk add), and choose to remove instead of add, would be amazing.
That said, I think the nuances of how this would work would make it hard to implement. For instance, I own a signed foil Intet, the Dreamer, a signed non-foil Intet, and an unsigned non-foil Intet (all 3 from Planar Chaos). If I have 1 Intet in my list of cards to remove, how will Deckbox know which of the 3 to tick down? What if I decide to get rid of all signed cards and list 2 Intets? How will I designate that they are the signed ones?
One method would be using a system of flags like on TappedOut. On T/O, you can use *F* to designate that a card is foil and *S* for signed. You can also specify set codes in parentheses. Using a system like this, I could add the following to my bulk-remove list:
1 Intet, the Dreamer *F* *S*
1 Intet, the Dreamer *S*
...which would keep my unsigned, non-foil version in my inventory.
Another method (which you could and probably should use alongside the above) would be generating a list of unmatched cards that the user has to go through and match to ones in inventory. In other words, if Deckbox can't feel 100% positive that I meant a certain card, it'll ask. So in the above example, if I list 1 Intet, the Dreamer *F* *S* then it WON'T ask me, because there can't be any confusion. But if I list 1 Intet, the Dreamer *S*, it'll ask if I meant the foil or non-foil signed copy.
Despite these complications, I think that having SOME version of a mass-remove, even if it's not completely robust, would be a good feature.
=======================
For those who aren't faint of heart and who have a very large list of cards to remove, here's what I did:
I exported my old inventory (which still included the sold cards in its counts) to a CSV file.
As I boxed up / shipped / sold cards, I added them to a dummy Deckbox account.
I exported the dummy account's inventory to CSV.
In Excel, I pasted the contents of the dummy CSV into the first CSV, and created a "named range" for all those removed cards.
I used a combination of CONCAT and VLOOKUP to see if a card in my original inventory had a corresponding row in the Removed named range.
If it did, the formula returned the Count of the removed cards. If not, it returned 0.
In a new column, I subtracted the amounts from Step 6 from the original Counts, which left me with my remaining quantity.
I copy-pasted the values from the Step 7 column into the original Count column, deleted the named range, and deleted the extra columns.
Saved it and imported via that CSV.
I know that probably sounds way overly complicated, but once you know what you're doing with the formulas, it's pretty easy. And when you're dealing with a thousand+ cards at a time, BOY does it sure save a ton of time in the long run! The longest step, honestly, is Step 2 -- creating an inventory of the removed cards.
If anyone would like more details on how to do Steps 4-8, I'd be glad to write a more thorough guide (or upload an example Excel file for those who "learn with their hands"). For people who are good with Excel, hopefully that'll be enough info to help out.