A quote is actually a 'cart' object.
A customer can have many quotes.
One for each website.
the quote object is not created when the customer is created.
It is created when the customer adds the first
product to the cart.
Also a quote is not necessarily assigned to a customer.
You can have a quote when browsing the website as guest.
In that case the quote
remains in the db after the session expires.
The quote is created when you call
Mage::getSingleton("checkout/session")->getQuote()
If there is a quote for the specified customer it returns it.
If not, it creates one and returns it.
Don't use Mage_Sales_Model_Quote::addProduct(), especially for complex products.
Use Mage_Checkout_Model_Cart::addProduct() which is also used by the add to
cart controller action and takes care for configuring the product and quote item.
It takes a product id and the "request info" as parameters,
where the request info can be simply the qty to buy (for simple products) or data for
a buyRequest object. This is basically the $_POST data from an add to cart action.
http://magento.stackexchange.com/questions/107593/magento-quote-vs-cart