Skip to content

Commit 8ce2dd0

Browse files
authored
Merge pull request #234 from rsaa/231OrderAck
231 - added functionality for order acknowledgements
2 parents 79521f4 + 748eb5b commit 8ce2dd0

File tree

4 files changed

+99
-2
lines changed

4 files changed

+99
-2
lines changed

Source/FikaAmazonAPI.SampleCode/FeedsSample.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,28 @@ public void FeebPostOrderFullfillment()
161161
var processingReport = amazonConnection.Feed.GetFeedDocumentProcessingReport(outPut.Url);
162162
}
163163

164+
public void SubmitFeedOrderAcknowledgement()
165+
{
166+
ConstructFeedService createDocument = new ConstructFeedService("{sellerId}", "1.02");
167+
var list = new List<OrderAcknowledgementMessage>();
168+
list.Add(new OrderAcknowledgementMessage()
169+
{
170+
AmazonOrderID = "AMZ1234567890123",
171+
MerchantOrderID = "12345678",
172+
StatusCode = OrderAcknowledgementStatusCode.Success,
173+
Item = new List<OrderAcknowledgementItem>() {
174+
new OrderAcknowledgementItem() {
175+
AmazonOrderItemCode = "52986411826454",
176+
MerchantOrderItemID = "1"
177+
}
178+
}
179+
});
180+
createDocument.AddOrderAcknowledgementMessage(list);
181+
var xml = createDocument.GetXML();
182+
183+
var feedID = amazonConnection.Feed.SubmitFeed(xml, FeedType.POST_ORDER_ACKNOWLEDGEMENT_DATA);
184+
}
185+
164186
public void SubmitFeedOrderAdjustment()
165187
{
166188
ConstructFeedService createDocument = new ConstructFeedService("{sellerId}", "1.02");

Source/FikaAmazonAPI.SampleCode/Program.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ static async Task Main(string[] args)
3535
});
3636

3737

38-
38+
FeedsSample feedsSample = new FeedsSample(amazonConnection);
39+
feedsSample.SubmitFeedOrderAcknowledgement();
3940

4041
//use this method automatically know if the report are RDT or not
4142
var data2222 = amazonConnection.Reports.CreateReportAndDownloadFile(ReportTypes.GET_FLAT_FILE_ACTIONABLE_ORDER_DATA_SHIPPING, DateTime.UtcNow.AddDays(-2), DateTime.UtcNow, null);

Source/FikaAmazonAPI/ConstructFeed/ConstructFeedService.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,23 @@ public void AddOrderFulfillmentMessage(IList<OrderFulfillmentMessage> messages,
105105
}
106106
envelope.Message = msgs;
107107
envelope.MessageType = Utils.Constants.FeedMessageType.OrderFulfillment;
108+
}
109+
110+
public void AddOrderAcknowledgementMessage(IList<OrderAcknowledgementMessage> messages, Constants.OperationType operationType = Constants.OperationType.Update)
111+
{
112+
var msgs = new List<BaseMessage>();
113+
int index = 1;
114+
foreach (var itm in messages)
115+
{
116+
msgs.Add(new BaseMessage()
117+
{
118+
MessageID = index++,
119+
OrderAcknowledgement = itm,
120+
OperationType = operationType
121+
});
122+
}
123+
envelope.Message = msgs;
124+
envelope.MessageType = Utils.Constants.FeedMessageType.OrderAcknowledgement;
108125
}
109126

110127
public void AddOrderAdjustmentMessage(IList<OrderAdjustmentMessage> messages, Constants.OperationType operationType = Constants.OperationType.Update)
Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,63 @@
1-
namespace FikaAmazonAPI.ConstructFeed.Messages
1+
using System.Collections.Generic;
2+
using System.Xml.Serialization;
3+
4+
namespace FikaAmazonAPI.ConstructFeed.Messages
25
{
36
public partial class OrderAcknowledgementMessage
47
{
8+
[XmlElement(ElementName = "AmazonOrderID")]
9+
public string AmazonOrderID;
10+
11+
[XmlElement(ElementName = "MerchantOrderID")]
12+
public string MerchantOrderID;
13+
14+
[XmlElement(ElementName = "StatusCode")]
15+
public OrderAcknowledgementStatusCode StatusCode;
16+
17+
[XmlElement(ElementName = "Item")]
18+
public List<OrderAcknowledgementItem> Item;
19+
}
20+
21+
public class OrderAcknowledgementItem
22+
{
23+
24+
[XmlElement(ElementName = "AmazonOrderItemCode")]
25+
public string AmazonOrderItemCode;
26+
27+
[XmlElement(ElementName = "MerchantOrderItemID")]
28+
public string MerchantOrderItemID;
29+
30+
[XmlElement(ElementName = "CancelReason")]
31+
public OrderAcknowledgementItemCancelReason CancelReason;
32+
33+
[XmlElement(ElementName = "Quantity")]
34+
public string Quantity;
35+
36+
[XmlIgnore()]
37+
public bool CancelReasonSpecified;
38+
}
39+
40+
public enum OrderAcknowledgementStatusCode
41+
{
42+
Success,
43+
Failure,
44+
}
45+
46+
public enum OrderAcknowledgementItemCancelReason
47+
{
48+
NoInventory,
49+
ShippingAddressUndeliverable,
50+
CustomerExchange,
51+
BuyerCanceled,
52+
GeneralAdjustment,
53+
CarrierCreditDecision,
54+
RiskAssessmentInformationNotValid,
55+
CarrierCoverageFailure,
56+
CustomerReturn,
57+
MerchandiseNotReceived,
58+
CannotVerifyInformation,
59+
PricingError,
60+
RejectOrder,
61+
WeatherDelay,
562
}
663
}

0 commit comments

Comments
 (0)