public GetOrCreateSellableItemBlock(IGetSellableItemPipeline getSellableItemPipeline, ICreateSellableItemPipeline createSellableItemPipeline, IPersistEntityPipeline persistEntityPipeline, IDoesEntityExistPipeline doesEntityExistPipeline)
 {
     this._getSellableItemPipeline    = getSellableItemPipeline;
     this._createSellableItemPipeline = createSellableItemPipeline;
     _persistEntityPipeline           = persistEntityPipeline;
     _doesEntityExistPipeline         = doesEntityExistPipeline;
 }
Beispiel #2
0
 public GetSellableItemPriceCardCommand(
     IGetSellableItemPipeline getSellableItemPipeline,
     IFindEntityPipeline findEntityPipeline,
     IServiceProvider serviceProvider)
     : base(serviceProvider)
 {
     _pipeline           = getSellableItemPipeline;
     _findEntityPipeline = findEntityPipeline;
 }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="name"></param>
        /// <param name="cart"></param>
        /// <param name="getSellableItemPipeline"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        internal static decimal GetCartShippingRate(string name, Cart cart, IGetSellableItemPipeline getSellableItemPipeline, CommercePipelineExecutionContext context)
        {
            var rates = GetCartShippingRates(cart, getSellableItemPipeline, context);

            if (rates == null || !rates.Any())
            {
                return(0m);
            }
            try
            {
                return(rates.FirstOrDefault(x => x.Key.ToLower() == name.ToLower()).Value);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return(0m);
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="getSellableItemPipeline"></param>
 public UpdateCartLinesFulfillmentChargeBlock(IGetSellableItemPipeline getSellableItemPipeline)
 {
     _getSellableItemPipeline = getSellableItemPipeline;
 }
 public AddPropertiesBlock(IPersistEntityPipeline persistEntityPipeline, IGetSellableItemPipeline getSellableItemPipeline, IFindEntityPipeline findEntityPipeline)
 {
     _persistEntityPipeline   = persistEntityPipeline;
     _getSellableItemPipeline = getSellableItemPipeline;
     _findEntityPipeline      = findEntityPipeline;
 }
 public AddToProductCompareBlock(IGetSellableItemPipeline getSellableItemPipeline, IAddListEntitiesPipeline addListEntitiesPipeline)
 {
     _getSellableItemPipeline = getSellableItemPipeline;
     _addListEntitiesPipeline = addListEntitiesPipeline;
 }
Beispiel #7
0
 public ValidateFulfillmentLocationInfoBlock(IGetCartPipeline getCartPipeline, IGetSellableItemPipeline getSellableItemPipeline)
     : base(null)
 {
     _getSellableItemPipeline = getSellableItemPipeline;
     _getCartPipeline         = getCartPipeline;
 }
Beispiel #8
0
        internal static List <KeyValuePair <string, decimal> > GetCartShippingRates(Cart cart,
                                                                                    IGetSellableItemPipeline getSellableItemPipeline, CommercePipelineExecutionContext context)
        {
            var input = new UpsReqestInput();

            UpsClientPolicy = context.GetPolicy <UpsClientPolicy>();
            if (cart != null && cart.Lines.Any <CartLineComponent>() && cart.HasComponent <PhysicalFulfillmentComponent>())
            {
                var component = cart.GetComponent <PhysicalFulfillmentComponent>();

                var shippingParty = component?.ShippingParty;

                input.AddressLine1  = shippingParty.Address1;
                input.AddressLine2  = shippingParty.Address2;
                input.City          = shippingParty.City;
                input.CountryCode   = shippingParty.CountryCode;
                input.StateCode     = shippingParty.StateCode;
                input.ZipPostalCode = shippingParty.ZipPostalCode;

                input.PriceValue = cart.Totals.SubTotal.Amount;

                decimal height = 0.0M;
                decimal width  = 0.0M;
                decimal length = 0.0m;
                decimal weight = 0.0m;

                foreach (var cartLineComponent in cart.Lines)
                {
                    // get specific weight value
                    var productArgument = ProductArgument.FromItemId(cartLineComponent.ItemId);
                    if (!productArgument.IsValid())
                    {
                        continue;
                    }
                    var     sellableItem = getSellableItemPipeline.Run(productArgument, context).Result;
                    var     product      = context.CommerceContext.Objects.OfType <Product>().FirstOrDefault <Product>((Product p) => p.ProductId.Equals(sellableItem.FriendlyId, StringComparison.OrdinalIgnoreCase));
                    decimal val          = 0m;
                    if (product != null)
                    {
                        if (product.HasProperty(UpsClientPolicy.WeightFieldName) && product[UpsClientPolicy.WeightFieldName].ToString().Trim() != "")
                        {
                            val = GetFirstDecimalFromString(product[UpsClientPolicy.WeightFieldName].ToString());
                        }
                        else
                        {
                            val = GetFirstDecimalFromString(UpsClientPolicy.Weight);
                        }

                        if (val > 0)
                        {
                            weight += val;
                        }

                        val = product.HasProperty(UpsClientPolicy.HeightFieldName) && product[UpsClientPolicy.HeightFieldName].ToString().Trim() != ""
                            ? GetFirstDecimalFromString(product[UpsClientPolicy.HeightFieldName].ToString())
                            : GetFirstDecimalFromString(UpsClientPolicy.Height);

                        if (val > 0)
                        {
                            height += val;
                        }

                        val = product.HasProperty(UpsClientPolicy.WidthFieldName) && product[UpsClientPolicy.WidthFieldName].ToString().Trim() != ""
                            ? GetFirstDecimalFromString(product[UpsClientPolicy.WidthFieldName].ToString())
                            : GetFirstDecimalFromString(UpsClientPolicy.Width);

                        if (val > 0 && val > width)
                        {
                            width = val;
                        }

                        val = product.HasProperty(UpsClientPolicy.LengthFieldName) && product[UpsClientPolicy.LengthFieldName].ToString().Trim() != ""
                            ? GetFirstDecimalFromString(product[UpsClientPolicy.LengthFieldName].ToString())
                            : GetFirstDecimalFromString(UpsClientPolicy.Length);

                        if (val > 0 && val > length)
                        {
                            length = val;
                        }
                    }
                }

                input.Height = Math.Ceiling(height).ToString(CultureInfo.CurrentCulture);
                input.Width  = Math.Ceiling(width).ToString(CultureInfo.CurrentCulture);
                input.Length = Math.Ceiling(length).ToString(CultureInfo.CurrentCulture);
                input.Weight = weight;
            }

            var rates = new List <KeyValuePair <string, decimal> >();

            rates = GetShippingRates(input, context);


            return(rates);
        }
 public UpdateCartLineGiftBoxBlock(IGetSellableItemPipeline getSellableItemPipeline)
 {
     _getSellableItemPipeline = getSellableItemPipeline;
 }
 public GetOrCreateProductBlock(IDoesEntityExistPipeline doesEntityExistPipeline, IGetSellableItemPipeline getSellableItemPipeline, ICreateSellableItemPipeline createSellableItemPipeline)
 {
     _doesEntityExistPipeline    = doesEntityExistPipeline;
     _getSellableItemPipeline    = getSellableItemPipeline;
     _createSellableItemPipeline = createSellableItemPipeline;
 }