Exemplo n.º 1
0
        /// <summary>
        ///     发布商品
        /// taobao.item.add 添加一个商品
        /// </summary>
        /// <param name="product">商品</param>
        /// <returns>商品编号</returns>
        public Item PublishGoods(Product product)
        {
            _log.LogInfo(Resource.Log_PublishGoodsing.StringFormat(product.Title));

            var req = new ItemAddRequest();

            Util.CopyModel(product, req);

            var             tContext = InstanceLocator.Current.GetInstance <AuthorizedContext>();
            ItemAddResponse response = _client.Execute(req, tContext.SessionKey);

            if (response.IsError)
            {
                var ex = new TopResponseException(response.ErrCode, response.ErrMsg, response.SubErrCode,
                                                  response.SubErrMsg, response.TopForbiddenFields);
                _log.LogError(Resource.Log_PublishGoodsFailure, product.Title, ex);
                throw ex;
            }

            Item item = response.Item;

            _log.LogInfo(Resource.Log_PublishGoodsSuccess, product.Title, item.NumIid);

            return(item);
        }
Exemplo n.º 2
0
        public Item UpdateGoods(Product product)
        {
            var req = new ItemUpdateRequest();

            Util.CopyModel(product, req);

            return(UpdateGoodsBase(req, product.NumIid, product.OuterId, product.Title));
        }
Exemplo n.º 3
0
        //填充产品信息,将banggo的数据填充进相应的请求模型中
        private void StuffProductInfo(Product bProduct)
        {
            _log.LogInfo(Resource.Log_StuffProductInfoing.StringFormat(bProduct.GoodsSn));
            bProduct.OuterId = bProduct.GoodsSn;

            var watermark = SetTextAndIconWatermark(bProduct.ThumbUrl, true);

            bProduct.Image = new FileItem(bProduct.GoodsSn + ".jpg", ImageHelper.SetBitmapToBytes(watermark, ImageFormat.Jpeg));

            //bProduct.Image = new FileItem(bProduct.GoodsSn + ".jpg", SysUtils.GetImgByte(bProduct.ThumbUrl));

            /* //todo:截图功能没有实现
             * foreach (var pic in bProduct.GoodsDetailPic)
             * {
             *  try
             *  {
             *      PictureUploadRequest picRequest = new PictureUploadRequest();
             *      picRequest.Img = pic;
             *      picRequest.PictureCategoryId = 0;
             *      picRequest.ImageInputTitle = pic.GetFileName();
             *
             *      var picResult = PictureUpload(picRequest);
             *      string imgTag = "<img src='{0}' alt='{1}'/>".StringFormat(picResult.PicturePath, picResult.Title);
             *      bProduct.Desc += imgTag;
             *  }
             *  catch (Exception)
             *  {
             *
             *  }
             * }*/


            //得到运费模版
            string deliveryTemplateId = _delivery.GetDeliveryTemplateId(Resource.SysConfig_DeliveryTemplateName);

            if (deliveryTemplateId == null)
            {
                SetDeliveryFee(bProduct);
            }
            else
            {
                bProduct.PostageId  = deliveryTemplateId.ToType <Int64>();
                bProduct.ItemWeight = Resource.SysConfig_ItemWeight;
            }

            string itemProps = _catalog.GetItemProps(bProduct.Cid.ToString());

            bProduct.Props = itemProps; //只先提取必填项

            SetOptionalProps(bProduct);

            SetSkuInfo(bProduct);

            watermark.Dispose();

            _log.LogInfo(Resource.Log_StuffProductInfoSuccess.StringFormat(bProduct.GoodsSn));
        }
Exemplo n.º 4
0
        public void TestCopeMode()
        {
            Product product = new Product();
            product.Desc = "asdf";
            product.Num = 22;

            ItemAddRequest req = new ItemAddRequest();

            Util.CopyModel(product, req);

            Console.WriteLine(req.Desc);
            Console.WriteLine(req.Num);
        }
Exemplo n.º 5
0
        //发布商品并上传图片
        private Item PublishGoodsAndUploadPic(Product product)
        {
            StuffProductInfo(product);

            Item item = PublishGoods(product);

            foreach (ProductColor pColor in product.ColorList)
            {
                UploadItemPropimg(item.NumIid, pColor.MapProps, new Uri(pColor.ImgUrl));
                Thread.Sleep(500);
            }
            return(item);
        }
Exemplo n.º 6
0
        /// <summary>
        ///     更新商品信息包括SKU信息,必须保证BSizeToTSize有值
        /// </summary>
        public void UpdateGoodsInfo(Product product)
        {
            //1,填充必填项到props
            string itemProps = _catalog.GetItemProps(product.Cid.ToString());

            product.Props = itemProps; //只先提取必填项

            //2,SetSkuInfo
            SetSkuInfo(product);
            Thread.Sleep(200);

            UpdateGoods(product);
        }
Exemplo n.º 7
0
        //更新商品并上传相应的销售图片
        private void UpdateGoodsAndUploadPic(Product product)
        {
            UpdateGoodsInfo(product);

            foreach (ProductColor pColor in product.ColorList)
            {
                if (product.NumIid != null)
                {
                    UploadItemPropimg(product.NumIid.Value, pColor.MapProps, new Uri(pColor.ImgUrl));
                }

                Thread.Sleep(500);
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// 发布商品
        /// </summary>
        /// <param name="product">商品</param>
        /// <returns>商品编号</returns>
        public Item PublishGoods(Product product)
        {
            ItemAddRequest req = new ItemAddRequest();

            Util.CopyModel(product, req);

            TopContext tContext = InstanceLocator.Current.GetInstance<TopContext>();
            ItemAddResponse response = client.Execute(req, tContext.SessionKey);

            if (response.IsError)
                throw new TopResponseException(response.ErrCode,response.ErrMsg,response.SubErrCode,response.SubErrMsg,response.TopForbiddenFields);

            return response.Item;
        }
Exemplo n.º 9
0
        public void TestCopeMode()
        {
            Product product = new Product();

            product.Desc = "asdf";
            product.Num  = 22;


            ItemAddRequest req = new ItemAddRequest();

            Util.CopyModel(product, req);

            Console.WriteLine(req.Desc);
            Console.WriteLine(req.Num);
        }
Exemplo n.º 10
0
        //包括设置品牌、货号
        private void SetOptionalProps(Product bProduct)
        {
            //取消在Props中增加品牌,因为在更新SKU没办法得到Brand

            /* var rm = new ResourceManager(typeof(Resource).FullName,
             *                           typeof(Resource).Assembly);
             * string brandProp = rm.GetString("SysConfig_{0}_BrandProp".StringFormat(bProduct.Brand));
             *
             * if (!brandProp.IsNullOrEmpty())
             * {
             *  bProduct.Props += brandProp;
             * }*/

            bProduct.InputPids = "{0},{1}".StringFormat(Resource.SysConfig_ProductCodeProp, "20000");
            bProduct.InputStr  = "{0},{1}".StringFormat(bProduct.GoodsSn, bProduct.Brand);
        }
Exemplo n.º 11
0
        //发布商品的主方法
        private Item PublishGoodsMain(IRequest req, RequestModel requestModel)
        {
            try
            {
                Product product = req.GetGoodsInfo(requestModel);
                product.SetAddProperty();

                if (product.ColorList.IsNullOrEmpty())
                {
                    return(null);
                }

                req.SetCidAndSellerCids(product);

                return(PublishGoodsAndUploadPic(product));
            }
            catch (Exception e)
            {
                _log.LogError("发布该产品失败,邦购没有该产品:{0}", e, requestModel.GoodsSn);
                return(null);
            }
        }
Exemplo n.º 12
0
        public Item UpdateGoods(Product product)
        {
            var req = new ItemUpdateRequest();

            Util.CopyModel(product, req);

            return UpdateGoodsBase(req, product.NumIid, product.OuterId, product.Title);
        }
Exemplo n.º 13
0
 private static void SetDeliveryFee(Product tProduct)
 {
     tProduct.PostFee = Resource.SysConfig_PostFee;
     tProduct.ExpressFee = Resource.SysConfig_ExpressFee;
     tProduct.EmsFee = Resource.SysConfig_EmsFee;
 }
Exemplo n.º 14
0
        //更新单条产品
        private void UpdateGoodsInternalSingle(IRequest req, Item item, string goodsUrl, bool isModifyPrice = true)
        {
            try
            {
                if (goodsUrl.IsNullOrEmpty())
                {
                    // this.GoodsDelisting(item.NumIid); //不进行下架,如在获取产品时,网络问题等因素
                    this._log.LogInfo("GoodsSn:{0}->没有在邦购上获取URL不能进行进行操作".StringFormat(item.OuterId));
                    return;
                }

                var product = new Product
                {
                    GoodsSn  = item.OuterId,
                    GoodsUrl = goodsUrl,
                    Cid      = item.Cid,
                    NumIid   = item.NumIid,
                    OuterId  = item.OuterId,
                    //替换原来的产品标题
                    Title =
                        item.Title.Replace(
                            SysConst.OriginalTitle,
                            SysConst.NewTitle)
                };
                req.GetProductSku(product, new RequestModel
                {
                    GoodsSn = item.OuterId,
                    Referer = goodsUrl
                });

                if (SysConst.IsModifyMainPic)
                {
                    #region old

                    /* old //todo 些处可以修改了,因为能获取到主图URL了
                     * Bitmap watermark = imageWatermark.CreateWatermark((Bitmap)imageWatermark.SetByteToImage(SysUtils.GetImgByte(item.PicUrl)),
                     *                                          (Bitmap)
                     *                                          imageWatermark.SetByteToImage(
                     *                                              SysUtils.GetImgByte(SysConst.ImgWatermark)),
                     *                                          ImageWatermark.WatermarkPosition.RightTop,
                     *                                          3);*/
                    #endregion

                    Bitmap watermark = SetTextAndIconWatermark(product.ThumbUrl, true);
                    product.Image = new FileItem("aa.jpg", ImageHelper.SetBitmapToBytes(watermark, ImageFormat.Jpeg));
                }

                #region 如果没有强制更新者 判断邦购数据是否以淘宝现在的库存数量一样,如果一样就取消更新

                if (!SysConst.IsEnforceUpdate)
                {
                    if (item.Num == product.ColorList.Sum(p => p.AvlNumForColor))
                    {
                        this._log.LogInfo(Resource.Log_StockEqualNotUpdate.StringFormat(item.NumIid, item.OuterId));
                        return;
                    }
                }

                #endregion

                this.DeleteAllSku(item);

                #region 如果是不修改价格(IsModifyPrice = false),则读取Item的price 填充到MySalePrice 中

                if (!isModifyPrice)
                {
                    foreach (var size in product.ColorList.SelectMany(color => color.SizeList))
                    {
                        size.MySalePrice = item.Price.ToType <double>();
                    }
                }

                #endregion

                this.UpdateGoodsAndUploadPic(product);
            }
            catch (Exception ex)
            {
                _log.LogError(Resource.Log_UpdateGoodsFailure.StringFormat(item.NumIid, item.OuterId), ex);
            }
        }
Exemplo n.º 15
0
        //更新单条产品
        private void UpdateGoodsInternalSingle(IRequest req,Item item, string goodsUrl, bool isModifyPrice = true)
        {
            try
            {
                if (goodsUrl.IsNullOrEmpty())
                {
                    // this.GoodsDelisting(item.NumIid); //不进行下架,如在获取产品时,网络问题等因素
                    this._log.LogInfo("GoodsSn:{0}->没有在邦购上获取URL不能进行进行操作".StringFormat(item.OuterId));
                    return;
                }

                var product = new Product
                {
                    GoodsSn = item.OuterId,
                    GoodsUrl = goodsUrl,
                    Cid = item.Cid,
                    NumIid = item.NumIid,
                    OuterId = item.OuterId,
                    //替换原来的产品标题
                    Title =
                        item.Title.Replace(
                            SysConst.OriginalTitle,
                            SysConst.NewTitle)
                };
                req.GetProductSku(product, new RequestModel
                {
                    GoodsSn = item.OuterId,
                    Referer = goodsUrl
                });

                if (SysConst.IsModifyMainPic)
                {
                    #region old

                    /* old //todo 些处可以修改了,因为能获取到主图URL了
                     Bitmap watermark = imageWatermark.CreateWatermark((Bitmap)imageWatermark.SetByteToImage(SysUtils.GetImgByte(item.PicUrl)),
                                                                (Bitmap)
                                                                imageWatermark.SetByteToImage(
                                                                    SysUtils.GetImgByte(SysConst.ImgWatermark)),
                                                                ImageWatermark.WatermarkPosition.RightTop,
                                                                3);*/
                    #endregion

                    Bitmap watermark = SetTextAndIconWatermark(product.ThumbUrl, true);
                    product.Image = new FileItem("aa.jpg", ImageHelper.SetBitmapToBytes(watermark, ImageFormat.Jpeg));
                }

                #region 如果没有强制更新者 判断邦购数据是否以淘宝现在的库存数量一样,如果一样就取消更新

                if (!SysConst.IsEnforceUpdate)
                {
                    if (item.Num == product.ColorList.Sum(p => p.AvlNumForColor))
                    {
                        this._log.LogInfo(Resource.Log_StockEqualNotUpdate.StringFormat(item.NumIid, item.OuterId));
                        return;
                    }
                }

                #endregion

                this.DeleteAllSku(item);

                #region 如果是不修改价格(IsModifyPrice = false),则读取Item的price 填充到MySalePrice 中

                if (!isModifyPrice)
                {
                    foreach (var size in product.ColorList.SelectMany(color => color.SizeList))
                    {
                        size.MySalePrice = item.Price.ToType<double>();
                    }
                }

                #endregion

                this.UpdateGoodsAndUploadPic(product);
            }
            catch (Exception ex)
            {
                _log.LogError(Resource.Log_UpdateGoodsFailure.StringFormat(item.NumIid, item.OuterId), ex);
            }
        }
Exemplo n.º 16
0
        //发布商品并上传图片
        private Item PublishGoodsAndUploadPic(Product product)
        {
            StuffProductInfo(product);

            Item item = PublishGoods(product);

            foreach (ProductColor pColor in product.ColorList)
            {
                UploadItemPropimg(item.NumIid, pColor.MapProps, new Uri(pColor.ImgUrl));
                Thread.Sleep(500);
            }
            return item;
        }
Exemplo n.º 17
0
        /// <summary>
        ///     发布商品
        /// taobao.item.add 添加一个商品 
        /// </summary>
        /// <param name="product">商品</param>
        /// <returns>商品编号</returns>
        public Item PublishGoods(Product product)
        {
            _log.LogInfo(Resource.Log_PublishGoodsing.StringFormat(product.Title));

            var req = new ItemAddRequest();

            Util.CopyModel(product, req);

            var tContext = InstanceLocator.Current.GetInstance<AuthorizedContext>();
            ItemAddResponse response = _client.Execute(req, tContext.SessionKey);

            if (response.IsError)
            {
                var ex = new TopResponseException(response.ErrCode, response.ErrMsg, response.SubErrCode,
                                                  response.SubErrMsg, response.TopForbiddenFields);
                _log.LogError(Resource.Log_PublishGoodsFailure, product.Title, ex);
                throw ex;
            }

            Item item = response.Item;

            _log.LogInfo(Resource.Log_PublishGoodsSuccess, product.Title, item.NumIid);

            return item;
        }
Exemplo n.º 18
0
        //包括设置品牌、货号
        private void SetOptionalProps(Product bProduct)
        {
            //取消在Props中增加品牌,因为在更新SKU没办法得到Brand
            /* var rm = new ResourceManager(typeof(Resource).FullName,
                                         typeof(Resource).Assembly);
            string brandProp = rm.GetString("SysConfig_{0}_BrandProp".StringFormat(bProduct.Brand));

            if (!brandProp.IsNullOrEmpty())
            {
                bProduct.Props += brandProp;
            }*/

            bProduct.InputPids = "{0},{1}".StringFormat(Resource.SysConfig_ProductCodeProp, "20000");
            bProduct.InputStr = "{0},{1}".StringFormat(bProduct.GoodsSn, bProduct.Brand);
        }
Exemplo n.º 19
0
        private void SetSkuInfo(Product bProduct)
        {
            #region var

            var sbSku            = new StringBuilder();
            var sbSkuToProps     = new StringBuilder();
            var lstSkuAlias      = new List <string>();
            var lstSkuQuantities = new List <string>();
            var lstSkuPrices     = new List <string>();
            var sbSkuOuterIds    = new StringBuilder();

            int num = 0; //商品数量

            #endregion

            List <string> propColors = _catalog.GetSaleProp(true, bProduct.Cid.ToString());

            List <string> propSize   = _catalog.GetSaleProp(false, bProduct.Cid.ToString());
            int           colorCount = bProduct.ColorList.Count;

            //清空现有的色码与淘宝的属性映射
            _dicColorMap.Clear();

            List <string> keys = bProduct.BSizeToTSize.Keys.ToList();
            bProduct.BSizeToTSize.Clear();
            for (int k = 0; k < keys.Count; k++)
            {
                bProduct.BSizeToTSize.Add(keys[k], propSize[k]);
            }

            for (int i = 0; i < colorCount; i++)
            {
                string pColor = propColors[i];

                ProductColor bColor = bProduct.ColorList[i];

                bColor.MapProps = pColor;

                _dicColorMap.Add(bColor.ColorCode, pColor);

                num += bColor.AvlNumForColor;

                sbSkuToProps.AppendFormat("{0}{1}", pColor, CommomConst.SEMI);
                lstSkuAlias.Add("{0}{1}{2}({3}色){4}".StringFormat(pColor, CommomConst.COLON, bColor.Title,
                                                                  bColor.ColorCode,
                                                                  CommomConst.SEMI));

                //读取尺码
                int sizeCount = bColor.SizeList.Count;
                for (int j = 0; j < sizeCount; j++)
                {
                    #region 构造尺码

                    ProductSize bSize = bColor.SizeList[j];
                    string      pSize;
                    if (!bProduct.BSizeToTSize.TryGetValue(bSize.Alias, out pSize))
                    {
                        continue;
                    }

                    sbSku.AppendFormat("{0}{1}", pColor, CommomConst.SEMI);
                    sbSku.AppendFormat("{0}{1}", pSize, CommomConst.COMMA);

                    if (sbSkuOuterIds.Length > 0)
                    {
                        sbSkuOuterIds.AppendFormat(",{0}", bProduct.GoodsSn);
                    }
                    else
                    {
                        sbSkuOuterIds.Append(bProduct.GoodsSn);
                    }

                    sbSkuToProps.AppendFormat("{0}{1}", pSize, CommomConst.SEMI);

                    // 不用为每个尺码都加别名
                    if (lstSkuAlias.Find(a => a.Contains(pSize)) == null)
                    {
                        lstSkuAlias.Add("{0}{1}{2}({3}){4}".StringFormat(pSize, CommomConst.COLON, bSize.Alias,
                                                                         bSize.SizeCode, CommomConst.SEMI));
                    }

                    lstSkuQuantities.Add(bSize.AvlNum.ToString(CultureInfo.InvariantCulture));
                    //num += bSize.AvlNum; 通过在颜色中去读取有效库存

                    if (bProduct.Price.IsNullOrEmpty())
                    {
                        bProduct.Price = bSize.MySalePrice.ToString(CultureInfo.InvariantCulture);
                    }

                    lstSkuPrices.Add(bSize.MySalePrice.ToString(CultureInfo.InvariantCulture));

                    #endregion
                }
            }

            bProduct.Num = num;

            bProduct.Props        += sbSkuToProps.ToString();
            bProduct.PropertyAlias = lstSkuAlias.ToColumnString("");
            bProduct.SkuProperties = sbSku.ToString().TrimEnd(',');

            bProduct.SkuQuantities = lstSkuQuantities.ToColumnString();
            bProduct.SkuPrices     = lstSkuPrices.ToColumnString();
            bProduct.SkuOuterIds   = sbSkuOuterIds.ToString();
        }
Exemplo n.º 20
0
 private static void SetDeliveryFee(Product tProduct)
 {
     tProduct.PostFee    = Resource.SysConfig_PostFee;
     tProduct.ExpressFee = Resource.SysConfig_ExpressFee;
     tProduct.EmsFee     = Resource.SysConfig_EmsFee;
 }
Exemplo n.º 21
0
        /// <summary>
        ///     更新商品信息包括SKU信息,必须保证BSizeToTSize有值
        /// </summary>
        public void UpdateGoodsInfo(Product product)
        {
            //1,填充必填项到props
            string itemProps = _catalog.GetItemProps(product.Cid.ToString());
            product.Props = itemProps; //只先提取必填项

            //2,SetSkuInfo
            SetSkuInfo(product);
            Thread.Sleep(200);

            UpdateGoods(product);
        }
Exemplo n.º 22
0
        //更新商品并上传相应的销售图片
        private void UpdateGoodsAndUploadPic(Product product)
        {
            UpdateGoodsInfo(product);

            foreach (ProductColor pColor in product.ColorList)
            {
                if (product.NumIid != null)
                    UploadItemPropimg(product.NumIid.Value, pColor.MapProps, new Uri(pColor.ImgUrl));

                Thread.Sleep(500);
            }
        }
Exemplo n.º 23
0
        /// <summary>
        ///     得到可售商品Sku
        /// </summary>
        /// <param name="product">产品</param>
        /// <param name="requestModel">请求模型</param>
        public void GetProductSku(Product product, RequestModel requestModel)
        {
            BanggoProduct banggoProduct;
            bool isError = false;
            try//如果该对象以前是父类,那么此时就直接强制转换,如果不是都重新new一个子类,然后进行赋值
            {
                banggoProduct = (BanggoProduct) product;
            }
            catch (Exception)
            {
                isError = true;
                banggoProduct = new BanggoProduct();
                Util.CopyModel(product, banggoProduct);
            }

            var doc = GetProductSkuBase(banggoProduct, requestModel);

            banggoProduct.ColorList = GetProductColorByOnline(requestModel, doc);

            if (isError) //如果是new的一个新对象,那么,就要把在GetProductSkuBase,GetProductColorByOnline中获取到的值,赋给product对象
            {
                Util.CopyModel(banggoProduct,product);
            }
        }
Exemplo n.º 24
0
        private void SetSkuInfo(Product bProduct)
        {
            #region var

            var sbSku = new StringBuilder();
            var sbSkuToProps = new StringBuilder();
            var lstSkuAlias = new List<string>();
            var lstSkuQuantities = new List<string>();
            var lstSkuPrices = new List<string>();
            var sbSkuOuterIds = new StringBuilder();

            int num = 0; //商品数量

            #endregion

            List<string> propColors = _catalog.GetSaleProp(true, bProduct.Cid.ToString());

            List<string> propSize = _catalog.GetSaleProp(false, bProduct.Cid.ToString());
            int colorCount = bProduct.ColorList.Count;

            //清空现有的色码与淘宝的属性映射
            _dicColorMap.Clear();

            List<string> keys = bProduct.BSizeToTSize.Keys.ToList();
            bProduct.BSizeToTSize.Clear();
            for (int k = 0; k < keys.Count; k++)
            {
                bProduct.BSizeToTSize.Add(keys[k], propSize[k]);
            }

            for (int i = 0; i < colorCount; i++)
            {
                string pColor = propColors[i];

                ProductColor bColor = bProduct.ColorList[i];

                bColor.MapProps = pColor;

                _dicColorMap.Add(bColor.ColorCode, pColor);

                num += bColor.AvlNumForColor;

                sbSkuToProps.AppendFormat("{0}{1}", pColor, CommomConst.SEMI);
                lstSkuAlias.Add("{0}{1}{2}({3}色){4}".StringFormat(pColor, CommomConst.COLON, bColor.Title,
                                                                  bColor.ColorCode,
                                                                  CommomConst.SEMI));

                //读取尺码
                int sizeCount = bColor.SizeList.Count;
                for (int j = 0; j < sizeCount; j++)
                {
                    #region 构造尺码

                    ProductSize bSize = bColor.SizeList[j];
                    string pSize;
                    if (!bProduct.BSizeToTSize.TryGetValue(bSize.Alias, out pSize))
                        continue;

                    sbSku.AppendFormat("{0}{1}", pColor, CommomConst.SEMI);
                    sbSku.AppendFormat("{0}{1}", pSize, CommomConst.COMMA);

                    if (sbSkuOuterIds.Length > 0)
                    {
                        sbSkuOuterIds.AppendFormat(",{0}", bProduct.GoodsSn);
                    }
                    else
                    {
                        sbSkuOuterIds.Append(bProduct.GoodsSn);
                    }

                    sbSkuToProps.AppendFormat("{0}{1}", pSize, CommomConst.SEMI);

                    // 不用为每个尺码都加别名
                    if (lstSkuAlias.Find(a => a.Contains(pSize)) == null)
                        lstSkuAlias.Add("{0}{1}{2}({3}){4}".StringFormat(pSize, CommomConst.COLON, bSize.Alias,
                                                                         bSize.SizeCode, CommomConst.SEMI));

                    lstSkuQuantities.Add(bSize.AvlNum.ToString(CultureInfo.InvariantCulture));
                    //num += bSize.AvlNum; 通过在颜色中去读取有效库存

                    if (bProduct.Price.IsNullOrEmpty())
                        bProduct.Price = bSize.MySalePrice.ToString(CultureInfo.InvariantCulture);

                    lstSkuPrices.Add(bSize.MySalePrice.ToString(CultureInfo.InvariantCulture));

                    #endregion
                }
            }

            bProduct.Num = num;

            bProduct.Props += sbSkuToProps.ToString();
            bProduct.PropertyAlias = lstSkuAlias.ToColumnString("");
            bProduct.SkuProperties = sbSku.ToString().TrimEnd(',');

            bProduct.SkuQuantities = lstSkuQuantities.ToColumnString();
            bProduct.SkuPrices = lstSkuPrices.ToColumnString();
            bProduct.SkuOuterIds = sbSkuOuterIds.ToString();
        }
Exemplo n.º 25
0
        //填充产品信息,将banggo的数据填充进相应的请求模型中
        private void StuffProductInfo(Product bProduct)
        {
            _log.LogInfo(Resource.Log_StuffProductInfoing.StringFormat(bProduct.GoodsSn));
            bProduct.OuterId = bProduct.GoodsSn;

            var watermark = SetTextAndIconWatermark(bProduct.ThumbUrl,true);

            bProduct.Image = new FileItem(bProduct.GoodsSn + ".jpg", ImageHelper.SetBitmapToBytes(watermark,ImageFormat.Jpeg));

            //bProduct.Image = new FileItem(bProduct.GoodsSn + ".jpg", SysUtils.GetImgByte(bProduct.ThumbUrl));

            /* //todo:截图功能没有实现
            foreach (var pic in bProduct.GoodsDetailPic)
            {
                try
                {
                    PictureUploadRequest picRequest = new PictureUploadRequest();
                    picRequest.Img = pic;
                    picRequest.PictureCategoryId = 0;
                    picRequest.ImageInputTitle = pic.GetFileName();

                    var picResult = PictureUpload(picRequest);
                    string imgTag = "<img src='{0}' alt='{1}'/>".StringFormat(picResult.PicturePath, picResult.Title);
                    bProduct.Desc += imgTag;
                }
                catch (Exception)
                {

                }
            }*/

            //得到运费模版
            string deliveryTemplateId = _delivery.GetDeliveryTemplateId(Resource.SysConfig_DeliveryTemplateName);

            if (deliveryTemplateId == null)
            {
                SetDeliveryFee(bProduct);
            }
            else
            {
                bProduct.PostageId = deliveryTemplateId.ToType<Int64>();
                bProduct.ItemWeight = Resource.SysConfig_ItemWeight;
            }

            string itemProps = _catalog.GetItemProps(bProduct.Cid.ToString());
            bProduct.Props = itemProps; //只先提取必填项

            SetOptionalProps(bProduct);

            SetSkuInfo(bProduct);

            watermark.Dispose();

            _log.LogInfo(Resource.Log_StuffProductInfoSuccess.StringFormat(bProduct.GoodsSn));
        }
Exemplo n.º 26
0
        /// <summary>
        /// 设计在淘宝上的类目和设计店铺的类目
        /// </summary>
        /// <param name="product"></param>
        public void SetCidAndSellerCids(Product product)
        {
            BanggoProduct bProduct = (BanggoProduct) product;

            bProduct.Cid = bProduct.ParentCatalog == "外套" ? _catalog.GetCid(bProduct.Category, bProduct.Catalog).ToType<Int64>() : _catalog.GetCid(bProduct.Category, bProduct.ParentCatalog).ToType<Int64>();
            var tContext = InstanceLocator.Current.GetInstance<AuthorizedContext>();

            bProduct.SellerCids = _shop.GetSellerCids(tContext.UserNick,
                                                      "{0} - {1}".StringFormat(bProduct.Brand, bProduct.Category),
                                                      bProduct.ParentCatalog);
        }
Exemplo n.º 27
0
        //填充产品信息,将banggo的数据填充进相应的请求模型中
        private void StuffProductInfo(Product bProduct)
        {
            _log.LogInfo(Resource.Log_StuffProductInfoing.StringFormat(bProduct.GoodsSn));
            bProduct.OuterId = bProduct.GoodsSn;

            //            _banggoMgt.SetCidAndSellerCids(bProduct);

            var watermark = SetTextAndIconWatermark(bProduct.ThumbUrl,true);

            bProduct.Image = new FileItem(bProduct.GoodsSn + ".jpg", imageWatermark.SetBitmapToBytes(watermark,ImageFormat.Jpeg));

            //bProduct.Image = new FileItem(bProduct.GoodsSn + ".jpg", SysUtils.GetImgByte(bProduct.ThumbUrl));

            //得到运费模版
            string deliveryTemplateId = _delivery.GetDeliveryTemplateId(Resource.SysConfig_DeliveryTemplateName);

            if (deliveryTemplateId == null)
            {
                SetDeliveryFee(bProduct);
            }
            else
            {
                bProduct.PostageId = deliveryTemplateId.ToType<Int64>();
                bProduct.ItemWeight = Resource.SysConfig_ItemWeight;
            }

            string itemProps = _catalog.GetItemProps(bProduct.Cid.ToString());
            bProduct.Props = itemProps; //只先提取必填项

            SetOptionalProps(bProduct);

            SetSkuInfo(bProduct);

            watermark.Dispose();

            _log.LogInfo(Resource.Log_StuffProductInfoSuccess.StringFormat(bProduct.GoodsSn));
        }