Hi Pauline,
I contacted Kentico directly and they suggested a web part or event handler, I used the event handler approach as my solution is on MVC.
And this suggestion from them worked well, it did not require a user or address, i had to tweak it as we need an address to get shipping costs from a 3rd party, but the general way used is below.
I created a custom shipping event
Events
And then on CartItem Add fired a new event
ShoppingCartItemInfo.TYPEINFO.Events.Insert.After += ShoppingCartItem_InsertAfter;
Within that:
if (ShoppingCart.IsShippingNeeded && (ShoppingCart.ShippingOption == null))
{
int myShippingOptionID = //get your shipping option id
ShoppingCart.ShoppingCartShippingOptionID = myShippingOptionID;
ShoppingCart.Update();
}
Regards,
Rob