Not sure why do you need the address book - and what is it for?
I need to find out to which country the order is to be sent. I can do this either via the first shipment (we don't allow splitting shipments to different locations) of the cart, or via the default shipping address in the users address book (which won't work since the user isn't logged in, so no adress book exists).
We have previously let the external system handle all pricing information for things being shipped to other countries (outside of Sweden), but I'm right now leaning towards importing all tax information and shipping costs into Commerce, and let it handle everything. I hope I can convince the customer to go this way... :)
On the site I'm upgrading, customers doesn't have to log in to shop (they just enter their address details on the checkout page, and select what payment method they wish to use). This was no problem in Commerce 7.5, where you could store all addresses in the Cart.OrderAddresses collection.
However, since then, the OrderAddresses property is gone, and you now have to configure the shipping address on the shipment, and the billing address on the payment.
My question is: is there a "best practice" way of how to handle non-logged-in customers? Should I create a new "anonymous" user each time a cart is created and something is added, so that I can utilize the addressbook? Or should I just keep things as they are?
My problem is that I have to query an external system during checkout to update the placed price and tax of the line items, and this is difficult to do in customized versions of DefaultPlacedPriceProcessor/DefaultLineItemCalculator/DefaultTaxCalulator, since I don't have access to the cart (unless I load it specifically, which I'd like to avoid).