The quantity should not be reset when a sale line is set with unit price 0
The module sale_shipment_cost allows you to define a shipment product with unit price 0.
If you set a shipment product in a sale line with unit price 0 and then you process that sale, the quantity of the line is also reset to 0 as well.
When a sale line has set 0 quantity, the invoice line is not created --> https://github.com/tryton/tryton/blob/472b4b0aa7d499e774bfc3e1a87bed2fa5758b10/modules/sale_shipment_cost/sale.py#L387
The shipment product from the sale line should be also created as an invoice line, so the client sees that the transport has not been invoiced.
So if you set a shipment product with unit price 0, the quantity of the line should remain as 1, removing the following condition --> https://github.com/tryton/tryton/blob/472b4b0aa7d499e774bfc3e1a87bed2fa5758b10/modules/sale_shipment_cost/sale.py#L317