Q:

Order "non-existant" product

I have my products repository externally and only use Magento 2 to actually order these items. Similar to this question here but unfortunaly that does not have an answer or specifics about implementation. Magento should not have access to the entire repository so I do not want to create a provider for that. 
Currently I have my controller implemented to add a generic product to the cart and then differenciate them using an "sku" option. 
The generic "order" object Magento is getting is as follows: 
[
    {
        "sku": "EV4-HI-TML90180",
        "options": [...],
        "price": 213.00
    },
    {
        "sku": "ETM-SGR-2010",
        "options": [...],
        "price": 321.00
    },
]

I am adding this to the cart as follows: 
private function addItemToCart(CartItem $item)
{
    $product = $this->getProductBySku("simpleproduct");

    // Set the name and the price of the product.
    // TODO: Fix name being "Simple product" in the cart.
    $product->setName($item->getSku());
    $product->setPrice($item->getPrice());

    // Fetch the SKU option for the generic product
    $option = $this->getOptionBySku($product, 'eg-sku');
    $product->addCustomOption('option_ids', $option->getData('option_id'));
    $product->addCustomOption('option_'.$option->getData('option_id'),
        $item->getSku()); // Set the SKU option value.

    $cartItem = $this->itemFactory->create();
    $cartItem->setName($item->getSku());
    $cartItem->setCustomPrice($item->getPrice());
    $cartItem->setOriginalCustomPrice($item->getPrice());
    $cartItem->setProduct($product);

    $this->cart->getQuote()->addItem($cartItem);
}

But it is complaining about dividing by 0 (WTF?)
Warning: Division by zero in /var/www/html/vendor/magento/module-tax/Model/Calculation/AbstractAggregateCalculator.php on line 158

A:

I ended up solving it using an Observer that listens for products being added to the cart, and then update the item. Rather than the controller. 
etc/event.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd">
    <event name="checkout_cart_product_add_after">
        <observer name="customprice" instance="Vendor\Module\Observer\Observer" />
    </event>
</config>

Observer.php
public function execute(Observer $observer)
{
    $item = $observer->getEvent()->getData('quote_item');
    $item = ( $item->getParentItem() ? $item->getParentItem() : $item ); // Set the parent item if item is virtual
    $price = $item->getProduct()->getPrice(); // Get the price from the product
    $item->setCustomPrice($price); // Set it over the item
    $item->setOriginalCustomPrice($price); // Forget that it was changed, so magento wont change it back randomly
    $item->getProduct()->setIsSuperMode(true);
}

This still shows the name of the "generic" product in the cart, not the SKU of the  non-existant product.

