You need to create a custom module for this and create a custom block in app\code\Vendor\Module\Block\Product.php
class Product extends \Magento\Framework\View\Element\Template
public function __construct(
Until Magento versions 2.2.9 and 2.3.3 Magento did always transliterate the url keys of products, whenever the event catalog_product_save_before was called. The responsible code can be found here (observer) and here (here the transliteration is called).
In this commit it has been changed and it only transliterates the url key if it's not null. If you save a ...
You can create a product attribute named base_individual_shipping_price and one simple plugin for the Magento\OfflineShipping\Model\Carrier\Tablerate (or other method, or for all methods) where we can read this additional individual price of each product and add it to the Rate.
Here is that plugin code: