Fixes #5081,6185  - Dynflowing product delete

Deleting product was previously doing a repository.destroy_all . This
commit aims to address that and other product deletion issues by
dynflowing the entire product delete orchestration.

TBD - Unit tests
We should avoid doing `write` operations in the view layer where possible.