How does soft-deleting a product behave?
Deleting a product is a soft delete — its IsDeleted flag is set, and the global query filter immediately hides it from all normal listings and storefront queries, so it's effectively removed from the catalogue. But the row still exists, which preserves history and referential integrity: past orders that reference the product still resolve correctly (order lines snapshot the product name…
Deleting a product is a soft delete — its IsDeleted flag is set, and the global query filter immediately hides it from all normal listings and storefront queries, so it's effectively removed from the catalogue. But the row still exists, which preserves history and referential integrity: past orders that reference the product still resolve correctly (order lines snapshot the product name and type at purchase time as well), and the deletion is reversible and auditable rather than a destructive cascade. Its category links are removed from active use. This is the same safe-deletion behavior applied across every entity in the system.