Create the cart if not exists when restoring it

When we restore the cart, we move the cart in the session, if it exists, into
the database cart. But the function returns if get_cart_by_name doesn't get a
cart, and no takeover is done. The user's cart is by no means guaranteed to be
present, so it has to be created.