Skip to content

Commit cf24388

Browse files
authored
Merge pull request #189 from J-W-Chan/main
add getMyFeesEstimates api
2 parents 0ee3b34 + a4daace commit cf24388

File tree

7 files changed

+128
-1
lines changed

7 files changed

+128
-1
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
using FikaAmazonAPI.AmazonSpApiSDK.Models.FulfillmentInbound;
2+
using FikaAmazonAPI.Utils;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Linq;
6+
using System.Text;
7+
using System.Threading.Tasks;
8+
using static FikaAmazonAPI.Utils.Constants;
9+
10+
namespace FikaAmazonAPI.SampleCode
11+
{
12+
public class ProductFeeSample
13+
{
14+
AmazonConnection amazonConnection;
15+
public ProductFeeSample(AmazonConnection amazonConnection)
16+
{
17+
this.amazonConnection = amazonConnection;
18+
}
19+
20+
public async Task getMyFeesEstimates()
21+
{
22+
var data = await amazonConnection.ProductFee.GetMyFeesEstimateAsync(new Parameter.ProductFee.FeesEstimateByIdRequest[]
23+
{
24+
new Parameter.ProductFee.FeesEstimateByIdRequest{
25+
IdType = AmazonSpApiSDK.Models.ProductFees.IdTypeEnum.SellerSKU,
26+
IdValue = "xxx",
27+
FeesEstimateRequest = new AmazonSpApiSDK.Models.ProductFees.FeesEstimateRequest{
28+
Identifier = "xxx",
29+
IsAmazonFulfilled = true,
30+
MarketplaceId = MarketPlace.UnitedKingdom.ID,
31+
PriceToEstimateFees = new AmazonSpApiSDK.Models.ProductFees.PriceToEstimateFees(){
32+
ListingPrice = new AmazonSpApiSDK.Models.ProductFees.MoneyType(){
33+
Amount = 6.59m,
34+
CurrencyCode ="GBP"
35+
}
36+
}
37+
}
38+
}
39+
});
40+
}
41+
}
42+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Runtime.Serialization;
4+
using System.Text;
5+
6+
namespace FikaAmazonAPI.AmazonSpApiSDK.Models.ProductFees
7+
{
8+
[DataContract]
9+
public class GetMyFeesEstimatesResponse: List<FeesEstimateResult>
10+
{
11+
}
12+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using Newtonsoft.Json;
2+
using Newtonsoft.Json.Converters;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Runtime.Serialization;
6+
using System.Text;
7+
8+
namespace FikaAmazonAPI.AmazonSpApiSDK.Models.ProductFees
9+
{
10+
[JsonConverter(typeof(StringEnumConverter))]
11+
public enum IdTypeEnum
12+
{
13+
/// <summary>
14+
/// An Amazon Standard Identification Number (ASIN) of a listings item.
15+
/// </summary>
16+
[EnumMember(Value = "ASIN")]
17+
ASIN,
18+
19+
/// <summary>
20+
/// A selling partner provided identifier for an Amazon listing.
21+
/// </summary>
22+
[EnumMember(Value = "SellerSKU")]
23+
SellerSKU,
24+
}
25+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using FikaAmazonAPI.AmazonSpApiSDK.Models.ProductFees;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Text;
5+
6+
namespace FikaAmazonAPI.Parameter.ProductFee
7+
{
8+
public class FeesEstimateByIdRequest
9+
{
10+
public string IdValue { get; set; }
11+
public IdTypeEnum IdType { get; set; }
12+
public FeesEstimateRequest FeesEstimateRequest { get; set; }
13+
}
14+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using FikaAmazonAPI.AmazonSpApiSDK.Models.ProductFees;
2+
using FikaAmazonAPI.Search;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Text;
6+
7+
namespace FikaAmazonAPI.Parameter.ProductFee
8+
{
9+
public class ParameterGetMyFeesEstimatesRequest: List<FeesEstimateByIdRequest>
10+
{
11+
}
12+
}

Source/FikaAmazonAPI/Services/ApiUrls.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,8 @@ protected class ProductFeeApiUrls
413413
private readonly static string _resourceBaseUrl = "/products/fees/v0";
414414
public static string GetMyFeesEstimateForSKU(string SellerSKU) => $"{_resourceBaseUrl}/listings/{Uri.EscapeDataString(SellerSKU)}/feesEstimate";
415415
public static string GetMyFeesEstimateForASIN(string Asin) => $"{_resourceBaseUrl}/items/{Asin}/feesEstimate";
416+
417+
public static string GetMyFeesEstimate => $"{_resourceBaseUrl}/feesEstimate";
416418
}
417419
protected class TokenApiUrls
418420
{
@@ -472,8 +474,12 @@ public static string Orders
472474
protected class CategoryApiUrls
473475
{
474476
private readonly static string _resourceBaseUrl = "/catalog/v0";
475-
477+
476478
private readonly static string _202012resourceBaseUrl = "/catalog/2020-12-01";
479+
480+
private readonly static string _202204resourceBaseUrl = "/catalog/2022-04-01";
481+
482+
477483
public static string ListCatalogItems
478484
{
479485
get => $"{_resourceBaseUrl}/items";
@@ -486,6 +492,9 @@ public static string ListCatalogCategories
486492
public static string GetCatalogItem202012(string asin) => $"{_202012resourceBaseUrl}/items/{asin}";
487493

488494
public static string SearchCatalogItems => $"{_202012resourceBaseUrl}/items";
495+
496+
public static string SearchCatalogItems202204 => $"{_202204resourceBaseUrl}/items";
497+
public static string GetCatalogItem202204(string asin) => $"{_202204resourceBaseUrl}/items/{asin}";
489498
}
490499

491500
protected class ListingsItemsApiUrls

Source/FikaAmazonAPI/Services/ProductFeeService.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using FikaAmazonAPI.AmazonSpApiSDK.Models.ProductFees;
2+
using FikaAmazonAPI.Parameter.ProductFee;
23
using FikaAmazonAPI.Utils;
4+
using System.Collections.Generic;
35
using System.Threading.Tasks;
46

57
namespace FikaAmazonAPI.Services
@@ -37,5 +39,16 @@ public async Task<FeesEstimateResult> GetMyFeesEstimateForASINAsync(string ASIN,
3739
return response.Payload.FeesEstimateResult;
3840
return null;
3941
}
42+
43+
44+
public GetMyFeesEstimatesResponse GetMyFeesEstimate(FeesEstimateByIdRequest[] feesEstimateRequest) =>
45+
Task.Run(() => GetMyFeesEstimateAsync(feesEstimateRequest)).ConfigureAwait(false).GetAwaiter().GetResult();
46+
47+
public async Task<GetMyFeesEstimatesResponse> GetMyFeesEstimateAsync(FeesEstimateByIdRequest[] feesEstimateRequest)
48+
{
49+
await CreateAuthorizedRequestAsync(ProductFeeApiUrls.GetMyFeesEstimate, RestSharp.Method.POST, postJsonObj: feesEstimateRequest);
50+
var response = await ExecuteRequestAsync<GetMyFeesEstimatesResponse>(RateLimitType.ProductFees_GetMyFeesEstimateForASIN);
51+
return response;
52+
}
4053
}
4154
}

0 commit comments

Comments
 (0)