public ShippingManager(IConnectServiceProvider connectServiceProvider, IConnectEntityMapper connectEntityMapper)
 {
     Assert.ArgumentNotNull((object)connectServiceProvider, nameof(connectServiceProvider));
     Assert.ArgumentNotNull((object)connectEntityMapper, nameof(connectEntityMapper));
     this.connectEntityMapper     = connectEntityMapper;
     this.shippingServiceProvider = connectServiceProvider.GetShippingServiceProvider();
 }
        private ReadOnlyCollection <ShippingOption> GetShippingOptions()
        {
            var shippingService = new ShippingServiceProvider();
            var request         = new GetShippingOptionsRequest();

            return(shippingService.GetShippingOptions(request).ShippingOptions);
        }
Beispiel #3
0
        public ShippingManager(IConnectServiceProvider connectServiceProvider, ILogService <CommonLog> logService)
            : base(logService)
        {
            Assert.ArgumentNotNull(connectServiceProvider, nameof(connectServiceProvider));

            this.shippingServiceProvider = connectServiceProvider.GetShippingServiceProvider();
        }
        public ManagerResponse <GetShippingMethodsResult, IReadOnlyCollection <ShippingMethod> > GetShippingMethods(string userId, GetShippingMethodsInputModel inputModel)
        {
            Assert.ArgumentNotNull(inputModel, nameof(inputModel));

            var result = new GetShippingMethodsResult {
                Success = false
            };
            var cartResult = CartManager.GetCart(userId);

            if (!cartResult.ServiceProviderResult.Success || cartResult.Result == null)
            {
                result.SystemMessages.ToList().AddRange(cartResult.ServiceProviderResult.SystemMessages);
                return(new ManagerResponse <GetShippingMethodsResult, IReadOnlyCollection <ShippingMethod> >(result, null));
            }

            var cart           = cartResult.Result;
            var preferenceType = InputModelExtension.GetShippingOptionType(inputModel.ShippingPreferenceType);

            var request = new GetShippingMethodsRequest(new ShippingOption {
                ShippingOptionType = preferenceType
            }, inputModel.ShippingAddress?.ToParty(), cart)
            {
                Lines = inputModel.Lines?.ToCommerceCartLines()
            };

            result = ShippingServiceProvider.GetShippingMethods <Sitecore.Commerce.Services.Shipping.GetShippingMethodsRequest, GetShippingMethodsResult>(request);
            return(new ManagerResponse <GetShippingMethodsResult, IReadOnlyCollection <ShippingMethod> >(result, result.ShippingMethods));
        }
Beispiel #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ShippingManager"/> class.
        /// </summary>
        /// <param name="shippingServiceProvider">The shipping service provider.</param>
        /// <param name="cartManager">The cart manager.</param>
        public ShippingManager([NotNull] ShippingServiceProvider shippingServiceProvider, [NotNull] CartManager cartManager)
        {
            Assert.ArgumentNotNull(shippingServiceProvider, "shippingServiceProvider");
            Assert.ArgumentNotNull(cartManager, "cartManager");

            this.ShippingServiceProvider = shippingServiceProvider;
            this.CartManager             = cartManager;
        }
        public ShippingManager(ShippingServiceProvider shippingServiceProvider, CartManager cartManager)
        {
            Assert.ArgumentNotNull(shippingServiceProvider, nameof(shippingServiceProvider));
            Assert.ArgumentNotNull(cartManager, nameof(cartManager));

            ShippingServiceProvider = shippingServiceProvider;
            CartManager             = cartManager;
        }
        private ReadOnlyCollection <ShippingMethod> GetShippingMethods(ShippingOption shippingOption, Cart cart)
        {
            var shippingService = new ShippingServiceProvider();
            var shippingParty   = cart.Parties.FirstOrDefault(x => x.PartyId == Constants.DefaultShipmentAddressName);
            var party           = cart.Parties.FirstOrDefault(x => x.PartyId == shippingParty.PartyId);

            var request = new GetShippingMethodsRequest(shippingOption, party);

            return(shippingService.GetShippingMethods(request).ShippingMethods);
        }
Beispiel #8
0
        public ShippingManagerTests()
        {
            var connectServiceProvider = Substitute.For <IConnectServiceProvider>();
            var logService             = Substitute.For <ILogService <CommonLog> >();

            this.shippingServiceProvider = Substitute.For <ShippingServiceProvider>();

            connectServiceProvider.GetShippingServiceProvider().Returns(this.shippingServiceProvider);
            this.fixture = this.CreateOmitOnRecursionFixture();

            this.shippingManager = Substitute.For <ShippingManager>(connectServiceProvider, logService);
        }
        public ManagerResponse <GetShippingOptionsResult, List <ShippingOption> > GetShippingPreferences(Cart cart)
        {
            Assert.ArgumentNotNull(cart, nameof(cart));

            var request = new GetShippingOptionsRequest(cart);
            var result  = ShippingServiceProvider.GetShippingOptions(request);

            if (result.Success && result.ShippingOptions != null)
            {
                return(new ManagerResponse <GetShippingOptionsResult, List <ShippingOption> >(result, result.ShippingOptions.ToList()));
            }

            result.WriteToSitecoreLog();
            return(new ManagerResponse <GetShippingOptionsResult, List <ShippingOption> >(result, null));
        }
Beispiel #10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CheckoutService"/> class.
        /// </summary>
        /// <param name="shippingServiceProvider">The shipping service provider.</param>
        /// <param name="paymentServiceProvider">The payment service provider.</param>
        /// <param name="customerServiceProvider">The customer service provider.</param>
        /// <param name="cartService">The cart service.</param>
        /// <param name="shopName">The shop name.</param>
        public CheckoutService(
            [NotNull] ShippingServiceProvider shippingServiceProvider,
            [NotNull] PaymentServiceProvider paymentServiceProvider,
            [NotNull] CustomerServiceProvider customerServiceProvider,
            [NotNull] ICartService cartService,
            [NotNull] string shopName)
        {
            Assert.ArgumentNotNull(shippingServiceProvider, "shippingServiceProvider");
            Assert.ArgumentNotNull(paymentServiceProvider, "paymentServiceProvider");
            Assert.ArgumentNotNull(customerServiceProvider, "customerServiceProvider");
            Assert.ArgumentNotNull(cartService, "cartService");
            Assert.ArgumentNotNullOrEmpty(shopName, "shopName");

            this._shippingServiceProvider = shippingServiceProvider;
            this._paymentServiceProvider  = paymentServiceProvider;
            this._customerServiceProvider = customerServiceProvider;
            this._cartService             = cartService;
            this.shopName = shopName;
        }
Beispiel #11
0
        public ActionResult GetCartLineFulfillmentMethods()
        {
            // Load a cart
            var loadCartRequest = new LoadCartRequest("CommerceEngineDefaultStorefront", "Default", "1234");
            var loadCartResult  = _cartServiceProvider.LoadCart(loadCartRequest);
            var cart            = loadCartResult.Cart as CommerceCart;

            // Add a line to the cart
            var lines    = new List <CartLine>();
            var cartLine = new CommerceCartLine("NEU", "test", "", 1.0M);

            lines.Add(cartLine);

            var addLinesRequest = new AddCartLinesRequest(cart, lines);
            var addLinesResult  = _cartServiceProvider.AddCartLines(addLinesRequest);

            cart = addLinesResult.Cart as CommerceCart;

            var shippingService = new ShippingServiceProvider();

            var shippingOption = new ShippingOption
            {
                ShippingOptionType =
                    ShippingOptionType
                    .DeliverItemsIndividually,     // This will trigger calling GetCartLinesFulfillmentMethods instead of GetCartFulfillmentMethods
            };

            var shippingParty = new CommerceParty
            {
                Address1    = "Main Street", City = "Montreal", ZipPostalCode = "NW7 7SJ", Country = "Canada",
                CountryCode = "CA"
            };

            var request = new GetShippingMethodsRequest(shippingOption, shippingParty, cart)
            {
                Lines = cart.Lines.Cast <CommerceCartLine>().ToList()
            };
            var result = shippingService.GetShippingMethods(request);

            return(View(result));
        }