using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using FikaAmazonAPI; using FikaAmazonAPI.AmazonSpApiSDK.Models.Feeds; using FikaAmazonAPI.ConstructFeed; using FikaAmazonAPI.ConstructFeed.Messages; using FikaAmazonAPI.Utils; using static FikaAmazonAPI.ConstructFeed.BaseXML; using static FikaAmazonAPI.Utils.Constants; namespace bnhtrade.Core.Data.Amazon.Feeds { public class SampleFeeds { AmazonConnection amazonConnection; public SampleFeeds(AmazonConnection amazonConnection) { this.amazonConnection = amazonConnection; } public void CallFlatfile() { string text = System.IO.File.ReadAllText(@"C:\Users\tareq\Downloads\Beispiel_Upload.txt"); var feedresultTXT = amazonConnection.Feed.SubmitFeed(text , FeedType.POST_FLAT_FILE_INVLOADER_DATA , new List() { MarketPlace.UnitedArabEmirates.ID } , null , ContentType.TXT); string pathURL = string.Empty; while (pathURL == string.Empty) { Thread.Sleep(1000 * 30); var feedOutput = amazonConnection.Feed.GetFeed(feedresultTXT); if (feedOutput.ProcessingStatus == FikaAmazonAPI.AmazonSpApiSDK.Models.Feeds.Feed.ProcessingStatusEnum.DONE) { var outPut = amazonConnection.Feed.GetFeedDocument(feedOutput.ResultFeedDocumentId); pathURL = outPut.Url; } } } public void GetFeeds() { var data = amazonConnection.Feed.GetFeeds(new FikaAmazonAPI.Parameter.Feed.ParameterGetFeed() { processingStatuses = ProcessingStatuses.DONE, pageSize = 100, feedTypes = new List { FeedType.POST_PRODUCT_PRICING_DATA }, createdSince = DateTime.UtcNow.AddDays(-6), createdUntil = DateTime.UtcNow.AddDays(-1), marketplaceIds = new List { MarketPlace.UnitedArabEmirates.ID } }); } public void CreateFeedDocument() { var data = amazonConnection.Feed.CreateFeedDocument(ContentType.XML); } public void GetFeedDocument() { var data2 = amazonConnection.Feed.GetFeedDocument("amzn1.tortuga.3.92d8fd38-6ccf-49be-979f-6dc27375ea3e.T2DF7HINJ0NRA2"); } public void GetFeed() { var data2 = amazonConnection.Feed.GetFeed("194146018872"); } public void CancelFeed() { var data2 = amazonConnection.Feed.CancelFeed("194146018872"); } public void SubmitFeedInventory() { ConstructFeedService createDocument = new ConstructFeedService("A3J37AJU4O9RHK", "1.02"); var list = new List(); list.Add(new InventoryMessage() { SKU = "API.853038006021.20789.1001", Quantity = 1 }); createDocument.AddInventoryMessage(list); var xml = createDocument.GetXML(); var feedID = amazonConnection.Feed.SubmitFeed(xml, FeedType.POST_INVENTORY_AVAILABILITY_DATA); GetFeedDetails(feedID); } /// /// UnderTest /// public void SubmitFeedAddProductMessage(string ASIN, string SKU) { ConstructFeedService createDocument = new ConstructFeedService(amazonConnection.GetCurrentSellerID, "1.02"); var list = new List(); list.Add(new ProductMessage() { SKU = SKU, StandardProductID = new FikaAmazonAPI.ConstructFeed.Messages.StandardProductID() { Type = "ASIN", Value = ASIN } }); createDocument.AddProductMessage(list, OperationType.Update); var xml = createDocument.GetXML(); var feedID = amazonConnection.Feed.SubmitFeed(xml, FeedType.POST_PRODUCT_DATA); GetFeedDetails(feedID); } public void SubmitFeedDeleteAddProductMessage() { ConstructFeedService createDocument = new ConstructFeedService("A3J37AJU4O9RHK", "1.02"); var list = new List(); list.Add(new ProductMessage() { SKU = "8432225129778...." }); createDocument.AddProductMessage(list, OperationType.Delete); var xml = createDocument.GetXML(); var feedID = amazonConnection.Feed.SubmitFeedContent(xml, FeedType.POST_PRODUCT_DATA); GetFeedDetails(feedID); } public void AddOfferMessageMessage() { ConstructFeedService createDocument = new ConstructFeedService("A3J37AJU4O9RHK", "1.02"); var list = new List(); list.Add(new OfferMessage() { SKU = "4049639414402_b" }); createDocument.AddOfferMessage(list, OperationType.Delete); var xml = createDocument.GetXML(); var feedID = amazonConnection.Feed.SubmitFeed(xml, FeedType.POST_PRODUCT_DATA); GetFeedDetails(feedID); } public void SubmitFeedPRICING(decimal price, string SKU) { ConstructFeedService createDocument = new ConstructFeedService(amazonConnection.GetCurrentSellerID, "1.02"); var list = new List(); list.Add(new PriceMessage() { SKU = SKU, StandardPrice = new StandardPrice() { currency = amazonConnection.GetCurrentMarketplace.CurrencyCode.ToString(), Value = price } }); createDocument.AddPriceMessage(list); var xml = createDocument.GetXML(); var feedID = amazonConnection.Feed.SubmitFeed(xml, FeedType.POST_PRODUCT_PRICING_DATA); GetFeedDetails(feedID); } public async void SubmitFeedPricingWithSalePrice(string sku, decimal price, decimal salePrice, DateTime startDate, DateTime endDate) { var currencyCode = amazonConnection.GetCurrentMarketplace.CurrencyCode.ToString(); var createDocument = new ConstructFeedService("A3J37AJU4O9RHK", "1.02"); var list = new List(); list.Add(new PriceMessage { SKU = sku, StandardPrice = new StandardPrice { currency = currencyCode, Value = price }, Sale = new Sale { SalePrice = new StandardPrice { currency = currencyCode, Value = salePrice }, StartDate = startDate.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffK"), EndDate = endDate.ToUniversalTime().ToString("yyyy-MM-dd'T'HH:mm:ss.fffK") } }); createDocument.AddPriceMessage(list); var xml = createDocument.GetXML(); var feedId = await amazonConnection.Feed.SubmitFeedAsync(xml, FeedType.POST_PRODUCT_PRICING_DATA); GetFeedDetails(feedId); } public void SubmitFeedSale(decimal price, string SKU) { ConstructFeedService createDocument = new ConstructFeedService("A3J37AJU4O9RHK", "1.02"); var list = new List(); list.Add(new PriceMessage() { SKU = SKU, StandardPrice = new StandardPrice() { currency = amazonConnection.GetCurrentMarketplace.CurrencyCode.ToString(), Value = price }, Sale = new Sale() { StartDate = DateTime.UtcNow.AddDays(+1).ToString("yyyy-MM-dd'T'HH:mm:ss.fffK"), EndDate = DateTime.UtcNow.AddDays(+2).ToString("yyyy-MM-dd'T'HH:mm:ss.fffK"), SalePrice = new StandardPrice() { currency = amazonConnection.GetCurrentMarketplace.CurrencyCode.ToString(), Value = price } } }); createDocument.AddPriceMessage(list); var xml = createDocument.GetXML(); var feedID = amazonConnection.Feed.SubmitFeed(xml, FeedType.POST_PRODUCT_PRICING_DATA); GetFeedDetails(feedID); } public void FeebPostOrderFullfillment() { ConstructFeedService createDocument = new ConstructFeedService("{sellerId}", "1.02"); var list = new List(); list.Add(new OrderFulfillmentMessage() { AmazonOrderID = "{orderId}", FulfillmentDate = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ss.fffK"), FulfillmentData = new FulfillmentData() { CarrierName = "Correos Express", ShippingMethod = "ePaq", ShipperTrackingNumber = "{trackingNumber}" } }); createDocument.AddOrderFulfillmentMessage(list); var xml = createDocument.GetXML(); var feedID = amazonConnection.Feed.SubmitFeed(xml, FeedType.POST_ORDER_FULFILLMENT_DATA); GetFeedDetails(feedID); } public void SubmitFeedOrderAcknowledgement() { ConstructFeedService createDocument = new ConstructFeedService("{sellerId}", "1.02"); var list = new List(); list.Add(new OrderAcknowledgementMessage() { AmazonOrderID = "AMZ1234567890123", MerchantOrderID = "12345678", StatusCode = OrderAcknowledgementStatusCode.Success, Item = new List() { new OrderAcknowledgementItem() { AmazonOrderItemCode = "52986411826454", MerchantOrderItemID = "1" } } }); createDocument.AddOrderAcknowledgementMessage(list); var xml = createDocument.GetXML(); var feedID = amazonConnection.Feed.SubmitFeed(xml, FeedType.POST_ORDER_ACKNOWLEDGEMENT_DATA); GetFeedDetails(feedID); } public void SubmitFeedOrderAdjustment() { ConstructFeedService createDocument = new ConstructFeedService("{sellerId}", "1.02"); var list = new List(); list.Add(new OrderAdjustmentMessage() { AmazonOrderID = "AMZ1234567890123", ActionType = AdjustmentActionType.Refund, AdjustedItem = new List() { new AdjustedItem() { AmazonOrderItemCode = "52986411826454", AdjustmentReason = AdjustmentReason.CustomerCancel, DirectPaymentAdjustments = new List() { new DirectPaymentAdjustments() { Component = new List() { new DirectPaymentAdjustmentsComponent() { DirectPaymentType = "Credit Card Refund", Amount = new CurrencyAmount() { Value = 10.50M, currency = amazonConnection.GetCurrentMarketplace.CurrencyCode } } } } } } } }); createDocument.AddOrderAdjustmentMessage(list); var xml = createDocument.GetXML(); var feedID = amazonConnection.Feed.SubmitFeed(xml, FeedType.POST_PAYMENT_ADJUSTMENT_DATA); GetFeedDetails(feedID); } public void CartonContentsRequestFeed() { ConstructFeedService createDocument2 = new ConstructFeedService("{SellerID}", "1.02"); var list22 = new List(); list22.Add(new CartonContentsRequest() { ShipmentId = "FBA123456", Carton = new List { new Carton() { CartonId="1", Item=new List(){ new CartonItem() { QuantityInCase=1, QuantityShipped=1, SKU="7004" } } }, new Carton() { CartonId="2", Item=new List(){ new CartonItem() { QuantityInCase=12, QuantityShipped=12, SKU="4051", ExpirationDate=DateTime.Now, } } } } }); createDocument2.AddCartonContentsRequest(list22); var xml222 = createDocument2.GetXML(); var feedID = amazonConnection.Feed.SubmitFeed(xml222, FeedType.POST_FBA_INBOUND_CARTON_CONTENTS); GetFeedDetails(feedID); } public void SubmitFeedEasyShipDocument() { ConstructFeedService createDocument = new ConstructFeedService("{sellerId}", "1.02"); var list = new List(); list.Add(new EasyShipDocumentMessage() { AmazonOrderID = "AMZ1234567890123", DocumentTypes = new List() { EasyShipDocumentType.ShippingLabel } }); createDocument.AddEasyShipDocumentMessage(list); var xml = createDocument.GetXML(); var feedID = amazonConnection.Feed.SubmitFeed(xml, FeedType.POST_EASYSHIP_DOCUMENTS); GetFeedDetails(feedID); } public void GetFeedDetails(string feedID) { string ResultFeedDocumentId = string.Empty; while (string.IsNullOrEmpty(ResultFeedDocumentId)) { var feedOutput = amazonConnection.Feed.GetFeed(feedID); if (feedOutput.ProcessingStatus == Feed.ProcessingStatusEnum.DONE) { var outPut = amazonConnection.Feed.GetFeedDocument(feedOutput.ResultFeedDocumentId); var reportOutput = outPut.Url; var processingReport = amazonConnection.Feed.GetFeedDocumentProcessingReport(outPut); DisplayProcessingReportMessage(processingReport); break; } if (!(feedOutput.ProcessingStatus == Feed.ProcessingStatusEnum.INPROGRESS || feedOutput.ProcessingStatus == Feed.ProcessingStatusEnum.INQUEUE)) break; else Thread.Sleep(10000); } } private void DisplayProcessingReportMessage(ProcessingReportMessage processingReport) { Console.WriteLine("MessagesProcessed=" + processingReport.ProcessingSummary.MessagesProcessed); Console.WriteLine("MessagesSuccessful= " + processingReport.ProcessingSummary.MessagesSuccessful); Console.WriteLine("MessagesWithError=" + processingReport.ProcessingSummary.MessagesWithError); Console.WriteLine("MessagesWithWarning=" + processingReport.ProcessingSummary.MessagesWithWarning); if (processingReport.Result != null && processingReport.Result.Count > 0) { foreach (var itm in processingReport.Result) { Console.WriteLine("ResultDescription=" + (itm.AdditionalInfo?.SKU ?? string.Empty) + " > " + itm.ResultDescription); } } } } }