Please reopen this - looks like in vendor/magento/module-downloadable/Model/Product/TypeTransitionManager/Plugin/Downloadable.php:66 the code is expecting some data by the key 'is_delete' on the downloadable data / downloadable product link to be able to change from a downloadable product to virtual, however there is no way to make that data be there. #38432
Open
Description
Preconditions (*)
- Downloadable Product 1
qty: 100500
status: enabled, IN_STOCK
weight: This item has no weight
links: no links, just samples
samples: 1 sample file
Steps to reproduce (*)
- Log in as Admin
- Open Downloadable Product 1
- Uncheck "Is this downloadable Product?"
- Save the product
Expected result (*)
- Save is effective.
- I can buy a virtual product with that SKU
- References to samples are kept in the database but the type_id and/or switcher prevents using this information almost like the weight is kept in the Virtual type of product. this gives an ability to switch back from virtual to downloadable smoothly without losing data
- Alternative: if the first 2 options cannot be implemented, then Merchant receives alert or validation with instruction to remove links and samples first and only then Magento application allows to uncheck "Is this downloadable Product?"
Example:
Actual result (*)
- Save is not effective.
- When I try to add product through API the product
is out of stockbehaves like a product that is out of stock (missing links) so it is still downloadable. - No alert. No validation. The checkbox "Is this downloadable Product?" is checked again, however, it was unchecked before save.