Currently if you update a Product via its API (https://developers.pipedrive.com/docs/api/v1/#!/Products/put_productsid) and you set the "active_flag" property to False, it deletes the Product instead of setting it as "deactivated". In order to set it as "deactivated" you need to leave the "active_flag" property as True and instead set the "selectable" property to False. Note that the "selectable" property is not documented in the API.
I think this behavior is not clear in the documentation, especially when there is a completely separate endpoint for deleting Products: https://developers.pipedrive.com/docs/api/v1/#!/Products/delete_products_id.
The name "active_flag" implies that the Product is either activated or deactivated, not activated or deleted. For these reasons I suggest that setting the "active_flag" to False should simply deactivate the Product instead of deleting it. If someone wishes to delete it, they should use the DELETE endpoint.