Skip to content

Commit 81a02fc

Browse files
authored
Merge pull request #213 from TechyChap/main
Added OrderAdjustmentMessage
2 parents be7d6c6 + 28b5732 commit 81a02fc

File tree

3 files changed

+202
-2
lines changed

3 files changed

+202
-2
lines changed

README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,44 @@ public void SubmitFeedProductImage()
462462

463463
}
464464
```
465+
466+
#### Feed Submit for change Order Adjustments
467+
```CSharp
468+
public void SubmitFeedOrderAdjustment()
469+
ConstructFeedService createDocument = new ConstructFeedService("A3J37AJU4O9RHK", "1.02");
470+
var list = new List<OrderAdjustmentMessage>();
471+
list.Add(new OrderAdjustmentMessage()
472+
{
473+
AmazonOrderID = "AMZ1234567890123",
474+
ActionType = AdjustmentActionType.Refund,
475+
AdjustedItem = new List<AdjustedItem>() {
476+
new AdjustedItem() {
477+
AmazonOrderItemCode = "52986411826454",
478+
AdjustmentReason = AdjustmentReason.CustomerCancel,
479+
DirectPaymentAdjustments = new List<DirectPaymentAdjustments>()
480+
{
481+
new DirectPaymentAdjustments()
482+
{
483+
Component = new List<DirectPaymentAdjustmentsComponent>()
484+
{
485+
new DirectPaymentAdjustmentsComponent() {
486+
DirectPaymentType = "Credit Card Refund",
487+
Amount = new CurrencyAmount() {
488+
Value = 10.50M,
489+
currency = BaseCurrencyCode.GBP
490+
}
491+
}
492+
}
493+
}
494+
}
495+
}
496+
}
497+
});
498+
createDocument.AddOrderAdjustmentMessage(list);
499+
var xml = createDocument.GetXML();
500+
501+
var feedID = amazonConnection.Feed.SubmitFeed(xml, FeedType.POST_PAYMENT_ADJUSTMENT_DATA);
502+
```
465503

466504
---
467505
## Usage Plans and Rate Limits in the Selling Partner API

Source/FikaAmazonAPI/ConstructFeed/ConstructFeedService.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,23 @@ public void AddOrderFulfillmentMessage(IList<OrderFulfillmentMessage> messages,
106106
envelope.Message = msgs;
107107
envelope.MessageType = Utils.Constants.FeedMessageType.OrderFulfillment;
108108
}
109+
110+
public void AddOrderAdjustmentMessage(IList<OrderAdjustmentMessage> 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+
OrderAdjustment = itm,
120+
OperationType = operationType
121+
});
122+
}
123+
envelope.Message = msgs;
124+
envelope.MessageType = Utils.Constants.FeedMessageType.OrderAdjustment;
125+
}
109126

110127
public void AddProductImageMessage(IList<ProductImageMessage> messages, Constants.OperationType operationType = Constants.OperationType.Update)
111128
{
Lines changed: 147 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,151 @@
1-
namespace FikaAmazonAPI.ConstructFeed.Messages
1+
using System.Collections.Generic;
2+
using System.Xml.Serialization;
3+
using FikaAmazonAPI.ConstructFeed.Messages;
4+
using static FikaAmazonAPI.ConstructFeed.BaseXML;
5+
6+
namespace FikaAmazonAPI.ConstructFeed.Messages
27
{
38
public partial class OrderAdjustmentMessage
4-
{
9+
{
10+
[XmlElement(ElementName = "AmazonOrderID")]
11+
public string AmazonOrderID { get; set; }
12+
[XmlElement(ElementName = "MerchantFulfillmentID")]
13+
public string MerchantFulfillmentID { get; set; }
14+
15+
[XmlElement(ElementName = "ActionType")]
16+
public AdjustmentActionType ActionType { get; set; }
17+
18+
[XmlElement(ElementName = "CODCollectionMethod")]
19+
public CODCollectionMethod CODCollectionMethod { get; set; }
20+
21+
[XmlElement(ElementName = "AdjustedItem")]
22+
public List<AdjustedItem> AdjustedItem { get; set; }
23+
}
24+
25+
public class AdjustedItem
26+
{
27+
[XmlElement(ElementName = "AmazonOrderItemCode")]
28+
public string AmazonOrderItemCode { get; set; }
29+
[XmlElement(ElementName = "MerchantOrderItemID")]
30+
public string MerchantOrderItemID { get; set; }
31+
32+
[XmlElement(ElementName = "MerchantAdjustmentItemID")]
33+
public string MerchantAdjustmentItemID { get; set; }
34+
35+
[XmlElement(ElementName = "AdjustmentReason")]
36+
public AdjustmentReason AdjustmentReason { get; set; }
37+
38+
[XmlElement(ElementName = "ItemPriceAdjustments")]
39+
public List<AdjustmentBuyerPrice> ItemPriceAdjustments { get; set; }
40+
41+
[XmlElement(ElementName = "PromotionAdjustments")]
42+
public List<PromotionAdjustments> PromotionAdjustments { get; set; }
43+
44+
[XmlElement(ElementName = "DirectPaymentAdjustments")]
45+
public List<DirectPaymentAdjustments> DirectPaymentAdjustments { get; set; }
46+
}
47+
48+
public class AdjustmentBuyerPrice
49+
{
50+
[XmlElement(ElementName = "Type")]
51+
AdjustmentBuyerTypePrice BuyerPriceType { get; set; }
52+
53+
[XmlElement(ElementName = "Amount")]
54+
CurrencyAmount Amount { get; set; }
55+
}
56+
57+
public class PromotionAdjustments
58+
{
59+
[XmlElement(ElementName = "PromotionClaimCode")]
60+
public string PromotionClaimCode { get; set; }
61+
62+
[XmlElement(ElementName = "MerchantPromotionID")]
63+
public string MerchantPromotionID { get; set; }
64+
65+
[XmlElement(ElementName = "Component")]
66+
public List<PromotionAdjustmentComponent> Component { get; set; }
67+
}
68+
69+
public class PromotionAdjustmentComponent
70+
{
71+
[XmlElement(ElementName = "Type")]
72+
public PromotionApplicationType PromotionType { get; set; }
73+
74+
[XmlElement(ElementName = "AdjustmentCurrencyAmount")]
75+
public CurrencyAmount Amount { get; set; }
76+
}
77+
78+
public class DirectPaymentAdjustmentsComponent
79+
{
80+
[XmlElement(ElementName = "Type")]
81+
public string DirectPaymentType { get; set; }
82+
83+
[XmlElement(ElementName = "AdjustmentCurrencyAmount")]
84+
public CurrencyAmount Amount { get; set; }
85+
}
86+
87+
public class DirectPaymentAdjustments
88+
{
89+
[XmlElement(ElementName = "Component")]
90+
public List<DirectPaymentAdjustmentsComponent> Component { get; set; }
91+
}
92+
93+
public enum AdjustmentActionType
94+
{
95+
Refund,
96+
Cancel
97+
}
98+
99+
public enum CODCollectionMethod
100+
{
101+
DirectPayment
102+
}
103+
104+
public enum AdjustmentReason
105+
{
106+
NoInventory,
107+
CustomerReturn,
108+
GeneralAdjustment,
109+
CouldNotShip,
110+
DifferentItem,
111+
Abandoned,
112+
CustomerCancel,
113+
PriceError,
114+
ProductOutofStock,
115+
CustomerAddressIncorrect,
116+
Exchange,
117+
Other,
118+
CarrierCreditDecision,
119+
RiskAssessmentInformationNotValid,
120+
CarrierCoverageFailure,
121+
TransactionRecord,
122+
Undeliverable,
123+
RefusedDelivery
124+
}
125+
126+
public enum AdjustmentBuyerTypePrice
127+
{
128+
Principal,
129+
Shipping,
130+
Tax,
131+
ShippingTax,
132+
RestockingFee,
133+
RestockingFeeTax,
134+
GiftWrap,
135+
GiftWrapTax,
136+
Surcharge,
137+
ReturnShipping,
138+
Goodwill,
139+
ExportCharge,
140+
COD,
141+
CODTax,
142+
Other,
143+
FreeReplacementReturnShipping
144+
}
145+
146+
public enum PromotionApplicationType
147+
{
148+
Principal,
149+
Shipping
5150
}
6151
}

0 commit comments

Comments
 (0)