Довольно очевидный ответ - создать пользовательское действие, которое вызывается с условием REMOVE = "ALL", означающим, что продукт удаляется. Из вашего поста не ясно, исследовали ли вы это далеко, но это общий подход, который вы бы выбрали.
Есть и другие соображения, о которых вы не упомянули: например, если продукт обновлен с новой версией, то более старый продукт удаляется, но это часть обновления, поэтому я предполагаю, что вы не хотите, чтобы это считалось удаление (см. свойство UPGRADINGPRODUCTCODE - вы добавите его к условию пользовательского действия удаления).