/// <summary>
            /// Adds the items.
            /// </summary>
            /// <param name="isCheckoutSession">If set to <c>true</c> [is checkout session].</param>
            /// <param name="cartLines">The cart lines.</param>
            /// <returns>The updated cart.</returns>
            public async Task <Cart> AddItems(bool isCheckoutSession, IEnumerable <CartLine> cartLines)
            {
                EcommerceContext      ecommerceContext      = ServiceUtilities.GetEcommerceContext(this.HttpContextBase);
                CartOperationsHandler cartOperationsHandler = new CartOperationsHandler(ecommerceContext);

                SessionType sessionType = ServiceUtilities.GetSessionType(this.HttpContextBase, isCheckoutSession);
                string      cartId      = ServiceUtilities.GetCartIdFromRequestCookie(this.HttpContextBase, sessionType);

                foreach (CartLine cartLine in cartLines)
                {
                    if (cartLine.Price != null && cartLine.Price != 0)
                    {
                        cartLine.IsPriceKeyedIn = true;
                    }
                }

                Cart cart = await cartOperationsHandler.AddItems(cartId, cartLines, sessionType);

                if (cart != null)
                {
                    ServiceUtilities.SetCartIdInResponseCookie(this.HttpContextBase, sessionType, cart.Id);
                }

                cart = await DataAugmenter.GetAugmentedCart(ecommerceContext, cart);

                return(cart);
            }
            /// <summary>
            /// Removes the items.
            /// </summary>
            /// <param name="isCheckoutSession">If set to <c>true</c> [is checkout session].</param>
            /// <param name="lineIds">The line ids.</param>
            /// <returns>The updated cart.</returns>
            public async Task <Cart> RemoveItems(bool isCheckoutSession, IEnumerable <string> lineIds)
            {
                EcommerceContext      ecommerceContext      = ServiceUtilities.GetEcommerceContext(this.HttpContextBase);
                CartOperationsHandler cartOperationsHandler = new CartOperationsHandler(ecommerceContext);

                SessionType sessionType = ServiceUtilities.GetSessionType(this.HttpContextBase, isCheckoutSession);
                string      cartId      = ServiceUtilities.GetCartIdFromRequestCookie(this.HttpContextBase, sessionType);

                Cart cart = await cartOperationsHandler.RemoveItems(cartId, lineIds);

                // For checkout sessions, reflect the changes in shopping cart as well.
                if (sessionType == SessionType.AnonymousCheckout || sessionType == SessionType.SignedInCheckout)
                {
                    string shoppingCartId = null;
                    if (sessionType == SessionType.AnonymousCheckout)
                    {
                        shoppingCartId = ServiceUtilities.GetCartIdFromRequestCookie(this.HttpContextBase, SessionType.AnonymousShopping);
                    }
                    else if (sessionType == SessionType.SignedInCheckout)
                    {
                        shoppingCartId = ServiceUtilities.GetCartIdFromRequestCookie(this.HttpContextBase, SessionType.SignedInShopping);
                    }

                    await cartOperationsHandler.RemoveItems(shoppingCartId, lineIds);
                }

                cart = await DataAugmenter.GetAugmentedCart(ecommerceContext, cart);

                return(cart);
            }
Exemplo n.º 3
0
            /// <summary>
            /// Gets existing customer.
            /// </summary>
            /// <param name="httpContextBase">The HTTP context base.</param>
            /// <param name="idToken">The identifier token.</param>
            /// <param name="identityProviderType">Type of the identity provider.</param>
            /// <returns>The customer associated with the token.</returns>
            private async Task <Tuple <Customer, bool> > GetExistingCustomer(HttpContextBase httpContextBase, string idToken, IdentityProviderType identityProviderType)
            {
                EcommerceContext ecommerceContext = ServiceUtilities.GetEcommerceContext(httpContextBase, idToken, identityProviderType);
                Customer         currentCustomer  = null;
                bool             isRequestToLinkToExistingCustomerPending = false;

                try
                {
                    CustomerOperationsHandler customerOperationsHandler = new CustomerOperationsHandler(ecommerceContext);
                    currentCustomer = await customerOperationsHandler.GetCustomer();
                }
                catch (UserAuthorizationException ex)
                {
                    if (ex.ErrorResourceId == AuthenticationErrors.CommerceIdentityNotFound)
                    {
                        var message = "Customer read failed. No customer is associated with external identity. It is okay to create a new customer.";
                        RetailLogger.Log.OnlineStoreNoCustomerAssociatedWithExternalId(ecommerceContext.IdentityProviderType.ToString(), message, ex);
                    }
                    else if (ex.ErrorResourceId == AuthenticationErrors.UserNotActivated)
                    {
                        var message = "Customer read failed. There is a pending request for linking the current external id to a customer account.";
                        RetailLogger.Log.OnlineStoreInactiveLinkBetweenAnExistingCustomerAndExternalId(ecommerceContext.IdentityProviderType.ToString(), message, ex);
                        isRequestToLinkToExistingCustomerPending = true;
                    }
                    else
                    {
                        throw;
                    }
                }

                return(new Tuple <Customer, bool>(currentCustomer, isRequestToLinkToExistingCustomerPending));
            }
Exemplo n.º 4
0
            /// <summary>
            /// Gets the delivery options information.
            /// </summary>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>Response containing delivery options available for the channel.</returns>
            public async Task <ActionResult> GetDeliveryOptionsInfo(QueryResultSettings queryResultSettings)
            {
                EcommerceContext             ecommerceContext         = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                OrgUnitOperationsHandler     orgUnitOperationsHandler = new OrgUnitOperationsHandler(ecommerceContext);
                PagedResult <DeliveryOption> deliveryOptions          = await orgUnitOperationsHandler.GetDeliveryOptionsInfo(queryResultSettings);

                return(this.Json(deliveryOptions.Results));
            }
Exemplo n.º 5
0
            /// <summary>
            /// Gets the loyalty cards.
            /// </summary>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>Response containing the loyalty cards associated with the current user.</returns>
            public async Task <ActionResult> GetLoyaltyCards(QueryResultSettings queryResultSettings)
            {
                EcommerceContext          ecommerceContext          = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                CustomerOperationsHandler customerOperationsHandler = new CustomerOperationsHandler(ecommerceContext);
                PagedResult <LoyaltyCard> loyaltyCards = await customerOperationsHandler.GetLoyaltyCards(queryResultSettings);

                return(this.Json(loyaltyCards.Results));
            }
Exemplo n.º 6
0
            /// <summary>
            /// Generates the loyalty card identifier.
            /// </summary>
            /// <returns>
            /// Response containing a newly generated loyalty card.
            /// </returns>
            public async Task <ActionResult> GenerateLoyaltyCardId()
            {
                EcommerceContext          ecommerceContext          = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                CustomerOperationsHandler customerOperationsHandler = new CustomerOperationsHandler(ecommerceContext);
                LoyaltyCard loyaltyCard = await customerOperationsHandler.GenerateLoyaltyCardId();

                return(this.Json(loyaltyCard));
            }
Exemplo n.º 7
0
            /// <summary>
            /// Gets the order history of a customer.
            /// </summary>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>A sakes order response.</returns>
            public async Task <ActionResult> GetOrderHistory(QueryResultSettings queryResultSettings)
            {
                EcommerceContext          ecommerceContext          = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                CustomerOperationsHandler customerOperationsHandler = new CustomerOperationsHandler(ecommerceContext);
                PagedResult <SalesOrder>  salesOrders = await customerOperationsHandler.GetOrderHistory(queryResultSettings);

                return(this.Json(salesOrders));
            }
Exemplo n.º 8
0
            /// <summary>
            /// Updates the customer.
            /// </summary>
            /// <param name="customer">The customer.</param>
            /// <returns>
            /// The updated customer entity.
            /// </returns>
            public async Task <ActionResult> UpdateCustomer(Customer customer)
            {
                EcommerceContext          ecommerceContext          = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                CustomerOperationsHandler customerOperationsHandler = new CustomerOperationsHandler(ecommerceContext);
                Customer updatedCustomer = await customerOperationsHandler.UpdateCustomer(customer);

                return(this.Json(updatedCustomer));
            }
Exemplo n.º 9
0
            /// <summary>
            /// Gets the product availability.
            /// </summary>
            /// <param name="productIds">The product ids.</param>
            /// <param name="channelId">The channel identifier.</param>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>Response containing available quantities for the listings inquired.</returns>
            public async Task <ActionResult> GetProductAvailability(IEnumerable <long> productIds, long channelId, QueryResultSettings queryResultSettings)
            {
                EcommerceContext         ecommerceContext         = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                ProductOperationsHandler productOperationsHandler = new ProductOperationsHandler(ecommerceContext);
                PagedResult <ProductAvailableQuantity> productAvailableQuantities = await productOperationsHandler.GetProductAvailability(productIds, channelId, queryResultSettings);

                return(this.Json(productAvailableQuantities.Results));
            }
Exemplo n.º 10
0
            /// <summary>
            /// Gets the products.
            /// </summary>
            /// <param name="productIds">The product ids.</param>
            /// <returns>Response containing simple products.</returns>
            public async Task <ActionResult> GetSimpleProducts(IEnumerable <long> productIds)
            {
                EcommerceContext            ecommerceContext         = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                ProductOperationsHandler    productOperationsHandler = new ProductOperationsHandler(ecommerceContext);
                IEnumerable <SimpleProduct> simpleProducts           = await productOperationsHandler.GetSimpleProducts(productIds);

                return(this.Json(simpleProducts));
            }
Exemplo n.º 11
0
            /// <summary>
            /// Gets the card types.
            /// </summary>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>A response containing collection of card types supported by channel..</returns>
            public async Task <ActionResult> GetCardTypes(QueryResultSettings queryResultSettings)
            {
                EcommerceContext           ecommerceContext         = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                OrgUnitOperationsHandler   orgUnitOperationsHandler = new OrgUnitOperationsHandler(ecommerceContext);
                PagedResult <CardTypeInfo> cardTypeInfoCollection   = await orgUnitOperationsHandler.GetCardTypes(queryResultSettings);

                return(this.Json(cardTypeInfoCollection.Results));
            }
Exemplo n.º 12
0
            /// <summary>
            /// Gets the channel tender types.
            /// </summary>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>Tender types response.</returns>
            public async Task <ActionResult> GetChannelTenderTypes(QueryResultSettings queryResultSettings)
            {
                EcommerceContext         ecommerceContext         = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                OrgUnitOperationsHandler orgUnitOperationsHandler = new OrgUnitOperationsHandler(ecommerceContext);
                PagedResult <TenderType> tenderTypes = await orgUnitOperationsHandler.GetTenderTypes(queryResultSettings);

                return(this.Json(tenderTypes.Results));
            }
Exemplo n.º 13
0
            /// <summary>
            /// Gets the channel configuration.
            /// </summary>
            /// <returns>Response containing the channel configuration.</returns>
            public async Task <ActionResult> GetChannelConfiguration()
            {
                EcommerceContext         ecommerceContext         = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                OrgUnitOperationsHandler orgUnitOperationsHandler = new OrgUnitOperationsHandler(ecommerceContext);
                ChannelConfiguration     channelConfiguration     = await orgUnitOperationsHandler.GetChannelConfiguration();

                return(this.Json(channelConfiguration));
            }
Exemplo n.º 14
0
            /// <summary>
            /// Gets the nearby stores.
            /// </summary>
            /// <param name="latitude">The latitude.</param>
            /// <param name="longitude">The longitude.</param>
            /// <param name="distance">The distance.</param>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>Response containing nearby stores.</returns>
            public async Task <ActionResult> GetNearbyStores(decimal latitude, decimal longitude, int distance, QueryResultSettings queryResultSettings)
            {
                EcommerceContext              ecommerceContext         = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                OrgUnitOperationsHandler      orgUnitOperationsHandler = new OrgUnitOperationsHandler(ecommerceContext);
                PagedResult <OrgUnitLocation> orgUnitLocations         = await orgUnitOperationsHandler.GetNearbyStores(latitude, longitude, distance, queryResultSettings);

                return(this.Json(orgUnitLocations.Results));
            }
Exemplo n.º 15
0
            /// <summary>
            /// Gets the nearby stores with availability.
            /// </summary>
            /// <param name="latitude">The latitude.</param>
            /// <param name="longitude">The longitude.</param>
            /// <param name="searchRadius">The search radius.</param>
            /// <param name="itemUnits">The item units.</param>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>Response containing stores with product availability.</returns>
            public async Task <ActionResult> GetNearbyStoresWithAvailability(decimal latitude, decimal longitude, double searchRadius, IEnumerable <ItemUnit> itemUnits, QueryResultSettings queryResultSettings)
            {
                EcommerceContext                  ecommerceContext         = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                OrgUnitOperationsHandler          orgUnitOperationsHandler = new OrgUnitOperationsHandler(ecommerceContext);
                PagedResult <OrgUnitAvailability> orgUnitAvailabilities    = await orgUnitOperationsHandler.GetNearbyStoresWithAvailability(latitude, longitude, searchRadius, itemUnits, queryResultSettings);

                return(this.Json(orgUnitAvailabilities.Results));
            }
Exemplo n.º 16
0
            /// <summary>
            /// Gets the loyalty card status.
            /// </summary>
            /// <param name="loyaltyCardNumbers">The loyalty card numbers.</param>
            /// <returns>Response containing the statuses of the specified loyalty card numbers.</returns>
            public async Task <ActionResult> GetLoyaltyCardStatus(IEnumerable <string> loyaltyCardNumbers)
            {
                EcommerceContext          ecommerceContext        = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                RetailOperationsHandler   retailOperationsHandler = new RetailOperationsHandler(ecommerceContext);
                PagedResult <LoyaltyCard> loyaltyCards            = await retailOperationsHandler.GetLoyaltyCardStatus(loyaltyCardNumbers);

                return(this.Json(loyaltyCards.Results));
            }
Exemplo n.º 17
0
            /// <summary>
            /// Retrieves the card payment accept result.
            /// </summary>
            /// <param name="cardPaymentResultAccessCode">The card payment result access code.</param>
            /// <returns>Returns payment response.</returns>
            public async Task <ActionResult> RetrieveCardPaymentAcceptResult(string cardPaymentResultAccessCode)
            {
                EcommerceContext        ecommerceContext        = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                RetailOperationsHandler retailOperationsHandler = new RetailOperationsHandler(ecommerceContext);
                CardPaymentAcceptResult cardPaymentAcceptResult = await retailOperationsHandler.RetrieveCardPaymentAcceptResult(cardPaymentResultAccessCode);

                return(this.Json(cardPaymentAcceptResult));
            }
Exemplo n.º 18
0
            /// <summary>
            /// Gets the sales order.
            /// </summary>
            /// <param name="salesOrderSearchCriteria">The sales order search criteria.</param>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>A response containing the sales orders inquired for.</returns>
            public async Task <ActionResult> GetSalesOrder(SalesOrderSearchCriteria salesOrderSearchCriteria, QueryResultSettings queryResultSettings)
            {
                EcommerceContext            ecommerceContext           = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                SalesOrderOperationsHandler salesOrderOperationHandler = new SalesOrderOperationsHandler(ecommerceContext);
                PagedResult <SalesOrder>    salesOrders = await salesOrderOperationHandler.GetSalesOrder(salesOrderSearchCriteria, queryResultSettings);

                return(this.Json(salesOrders.Results));
            }
Exemplo n.º 19
0
            /// <summary>
            /// Gets the gift card information.
            /// </summary>
            /// <param name="giftCardId">The gift card identifier.</param>
            /// <returns>A response containing gift card information.</returns>
            public async Task <ActionResult> GetGiftCardInformation(string giftCardId)
            {
                EcommerceContext        ecommerceContext        = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                RetailOperationsHandler retailOperationsHandler = new RetailOperationsHandler(ecommerceContext);
                GiftCard giftCard = await retailOperationsHandler.GetGiftCardInformation(giftCardId);

                return(this.Json(giftCard));
            }
Exemplo n.º 20
0
            /// <summary>
            /// Gets the state province information.
            /// </summary>
            /// <param name="countryCode">The country code.</param>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>The states/provinces for the given country.</returns>
            public async Task <ActionResult> GetStateProvinceInfo(string countryCode, QueryResultSettings queryResultSettings)
            {
                EcommerceContext                ecommerceContext            = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                RetailOperationsHandler         retailOperationsHandler     = new RetailOperationsHandler(ecommerceContext);
                PagedResult <StateProvinceInfo> stateProvinceInfoCollection = await retailOperationsHandler.GetStateProvinces(countryCode, queryResultSettings);

                return(this.Json(stateProvinceInfoCollection.Results));
            }
Exemplo n.º 21
0
            /// <summary>
            /// Gets the country region information.
            /// </summary>
            /// <param name="languageId">The language identifier.</param>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>Country info response.</returns>
            public async Task <ActionResult> GetCountryRegionInfo(string languageId, QueryResultSettings queryResultSettings)
            {
                EcommerceContext                ecommerceContext            = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                RetailOperationsHandler         retailOperationsHandler     = new RetailOperationsHandler(ecommerceContext);
                PagedResult <CountryRegionInfo> countryRegionInfoCollection = await retailOperationsHandler.GetCountryRegionInfo(languageId, queryResultSettings);

                return(this.Json(countryRegionInfoCollection.Results));
            }
Exemplo n.º 22
0
            /// <summary>
            /// Gets the loyalty card transactions.
            /// </summary>
            /// <param name="loyaltyCardNumber">The loyalty card number.</param>
            /// <param name="rewardPointId">The reward point identifier.</param>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>A response containing transactions for the specified loyalty card.</returns>
            public async Task <ActionResult> GetLoyaltyCardTransactions(string loyaltyCardNumber, string rewardPointId, QueryResultSettings queryResultSettings)
            {
                EcommerceContext        ecommerceContext        = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                RetailOperationsHandler retailOperationsHandler = new RetailOperationsHandler(ecommerceContext);
                PagedResult <LoyaltyCardTransaction> loyaltyCardTransactions = await retailOperationsHandler.GetLoyaltyCardTransactions(
                    loyaltyCardNumber,
                    rewardPointId,
                    queryResultSettings);

                return(this.Json(loyaltyCardTransactions.Results));
            }
Exemplo n.º 23
0
            /// <summary>
            /// Gets the promotions.
            /// </summary>
            /// <param name="isCheckoutSession">If set to <c>true</c> [is checkout session].</param>
            /// <returns>The service response containing the applicable promotions.</returns>
            public async Task <ActionResult> GetPromotions(bool isCheckoutSession)
            {
                EcommerceContext      ecommerceContext      = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                CartOperationsHandler cartOperationsHandler = new CartOperationsHandler(ecommerceContext);

                SessionType sessionType = ServiceUtilities.GetSessionType(this.HttpContext, isCheckoutSession);
                string      cartId      = ServiceUtilities.GetCartIdFromRequestCookie(this.HttpContext, sessionType);

                CartPromotions cartPromotions = await cartOperationsHandler.GetPromotions(cartId);

                return(this.Json(cartPromotions));
            }
Exemplo n.º 24
0
            /// <summary>
            /// Updates the loyalty card identifier.
            /// </summary>
            /// <param name="isCheckoutSession">If set to <c>true</c> [is checkout session].</param>
            /// <param name="loyaltyCardId">The loyalty card identifier.</param>
            /// <returns>A response containing the updated shopping cart.</returns>
            public async Task <ActionResult> UpdateLoyaltyCardId(bool isCheckoutSession, string loyaltyCardId)
            {
                EcommerceContext      ecommerceContext      = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                CartOperationsHandler cartOperationsHandler = new CartOperationsHandler(ecommerceContext);

                SessionType sessionType = ServiceUtilities.GetSessionType(this.HttpContext, isCheckoutSession);
                string      cartId      = ServiceUtilities.GetCartIdFromRequestCookie(this.HttpContext, sessionType);

                Cart cart = await cartOperationsHandler.UpdateLoyaltyCardId(cartId, loyaltyCardId);

                return(this.Json(cart));
            }
Exemplo n.º 25
0
            /// <summary>
            /// Gets the card payment accept point.
            /// </summary>
            /// <param name="cardPaymentAcceptSettings">The card payment accept settings.</param>
            /// <returns>Returns payment response.</returns>
            public async Task <ActionResult> GetCardPaymentAcceptPoint(CardPaymentAcceptSettings cardPaymentAcceptSettings)
            {
                EcommerceContext      ecommerceContext      = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                CartOperationsHandler cartOperationsHandler = new CartOperationsHandler(ecommerceContext);

                SessionType sessionType = ServiceUtilities.GetSessionType(this.HttpContext, isCheckoutSession: true);
                string      cartId      = ServiceUtilities.GetCartIdFromRequestCookie(this.HttpContext, sessionType);

                CardPaymentAcceptPoint cardPaymentAcceptPoint = await cartOperationsHandler.GetCardPaymentAcceptPoint(cartId, cardPaymentAcceptSettings);

                return(this.Json(cardPaymentAcceptPoint));
            }
Exemplo n.º 26
0
            /// <summary>
            /// Updates the line delivery specifications.
            /// </summary>
            /// <param name="lineDeliverySpecifications">The line delivery specifications.</param>
            /// <returns>The updated shopping cart.</returns>
            public async Task <ActionResult> UpdateLineDeliverySpecifications(IEnumerable <LineDeliverySpecification> lineDeliverySpecifications)
            {
                EcommerceContext      ecommerceContext      = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                CartOperationsHandler cartOperationsHandler = new CartOperationsHandler(ecommerceContext);

                SessionType sessionType = ServiceUtilities.GetSessionType(this.HttpContext, isCheckoutSession: true);
                string      cartId      = ServiceUtilities.GetCartIdFromRequestCookie(this.HttpContext, sessionType);

                Cart cart = await cartOperationsHandler.UpdateLineDeliverySpecifications(cartId, lineDeliverySpecifications);

                return(this.Json(cart));
            }
Exemplo n.º 27
0
            /// <summary>
            /// Gets the line delivery options for shipping.
            /// </summary>
            /// <param name="lineShippingAddresses">The line shipping addresses.</param>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>
            /// The service response containing the available delivery options for the specified lines.
            /// </returns>
            public async Task <ActionResult> GetLineDeliveryOptionsForShipping(IEnumerable <LineShippingAddress> lineShippingAddresses, QueryResultSettings queryResultSettings)
            {
                EcommerceContext      ecommerceContext      = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                CartOperationsHandler cartOperationsHandler = new CartOperationsHandler(ecommerceContext);

                SessionType sessionType = ServiceUtilities.GetSessionType(this.HttpContext, isCheckoutSession: true);
                string      cartId      = ServiceUtilities.GetCartIdFromRequestCookie(this.HttpContext, sessionType);

                PagedResult <SalesLineDeliveryOption> lineDeliveryOptions = await cartOperationsHandler.GetLineDeliveryOptionsForShipping(cartId, lineShippingAddresses, queryResultSettings);

                return(this.Json(lineDeliveryOptions.Results));
            }
Exemplo n.º 28
0
            /// <summary>
            /// Gets the order delivery options for shipping.
            /// </summary>
            /// <param name="shipToAddress">The ship to address.</param>
            /// <param name="queryResultSettings">The query result settings.</param>
            /// <returns>The service response containing the available delivery options.</returns>
            public async Task <ActionResult> GetOrderDeliveryOptionsForShipping(Address shipToAddress, QueryResultSettings queryResultSettings)
            {
                EcommerceContext      ecommerceContext      = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                CartOperationsHandler cartOperationsHandler = new CartOperationsHandler(ecommerceContext);

                SessionType sessionType = ServiceUtilities.GetSessionType(this.HttpContext, isCheckoutSession: true);
                string      cartId      = ServiceUtilities.GetCartIdFromRequestCookie(this.HttpContext, sessionType);

                PagedResult <DeliveryOption> deliveryOptions = await cartOperationsHandler.GetOrderDeliveryOptionsForShipping(cartId, shipToAddress, queryResultSettings);

                return(this.Json(deliveryOptions));
            }
Exemplo n.º 29
0
            /// <summary>
            /// Sets the cart affiliation loyalty tiers.
            /// </summary>
            /// <param name="isCheckoutSession">If set to <c>true</c> [is checkout session].</param>
            /// <param name="tiers">The tiers.</param>
            /// <returns>Returns a null response.</returns>
            public async Task <ActionResult> SetCartAffiliationLoyaltyTiers(bool isCheckoutSession, IEnumerable <long> tiers)
            {
                EcommerceContext      ecommerceContext      = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                CartOperationsHandler cartOperationsHandler = new CartOperationsHandler(ecommerceContext);

                SessionType sessionType = ServiceUtilities.GetSessionType(this.HttpContext, isCheckoutSession);
                string      cartId      = ServiceUtilities.GetCartIdFromRequestCookie(this.HttpContext, sessionType);

                await cartOperationsHandler.SetCartAffiliationLoyaltyTiers(cartId, tiers);

                return(this.Json(null));
            }
Exemplo n.º 30
0
            /// <summary>
            /// Adds the or remove promotion code.
            /// </summary>
            /// <param name="isCheckoutSession">If set to <c>true</c> [is checkout session].</param>
            /// <param name="promotionCode">The promotion code.</param>
            /// <param name="isAdd">If set to <c>true</c> [is add].</param>
            /// <returns>The service response containing the updated shopping cart.</returns>
            public async Task <ActionResult> AddOrRemovePromotionCode(bool isCheckoutSession, string promotionCode, bool isAdd)
            {
                EcommerceContext      ecommerceContext      = ServiceUtilities.GetEcommerceContext(this.HttpContext);
                CartOperationsHandler cartOperationsHandler = new CartOperationsHandler(ecommerceContext);

                SessionType sessionType = ServiceUtilities.GetSessionType(this.HttpContext, isCheckoutSession);
                string      cartId      = ServiceUtilities.GetCartIdFromRequestCookie(this.HttpContext, sessionType);

                Cart cart = await cartOperationsHandler.AddOrRemovePromotionCode(cartId, promotionCode, isAdd);

                return(this.Json(cart));
            }