Пример #1
0
        /// <summary>
        /// eBayItem Revise
        /// 리스팅 중인 상품의 eBay 정보를 수정하고 GEP의 eBay 정보를 update 한다.
        /// </summary>
        /// <param name="id">eBay_items 컬렉션의 _id, Inventory ID로 사용됨</param>
        /// <param name="data">수정할 상품정보</param>
        /// <returns></returns>
        public Boolean ReviseItem(String id, eBayItemsDataForSeller data)
        {
            var asis = GetEbayItemData(id);

            if (!asis.dynamicData.ListingDuration.Equals(data.ListingDuration))
            {
                //리스팅 종료일 재계산 : 오늘 날짜 + data.ListingDuration + 7일
                DateTime new_edt = DateTime.Today.AddDays(data.ListingDuration + 7);

                //clone 상품 팔자주문 변경
                bool res = new ItemOrderBiz().EditCloneItemOrder(asis.cln_itemno, new_edt, asis.gep_info.src_price, asis.gep_info.src_settle_price, asis.gep_info.src_qty, asis.ta, "");

                //실패시 eBay 상품정보 Revise 하지 않음.
                if (res == false) return false;
            }

            //eBay 상품 정보 수정
            //실패시 eBay_Items 수정하지 않음.
            JsonWriterSettings jset = new JsonWriterSettings();
            jset.OutputMode = JsonOutputMode.JavaScript;
            var result = new ItemService(apiUrl).ReviseItem(new ReviseItemRequest
            {
                 EbayItemInfo = Util.EncodeUTF8To64(data.ToJson(jset)),
                 EbayTokenID = new CommonBiz().GeteBayToken(asis.ebay_acnt),
                 InventoryID = id,
                 ItemID = asis.itemno,
                 SiteID = asis.site,
            });
            if (!result.Ack.Equals(AckType.Success))
            {
                return false;
            }

            //eBay_Items 수정
            if (SeteBayItems(id, data) < 0) return false;

            //모두 성공하면 true 리턴
            return true;
        }