Skip to content

Commit f4451c1

Browse files
Merge branch 'abuzuhri:main' into main
2 parents 9473dbb + 76e18ef commit f4451c1

File tree

98 files changed

+4781
-237
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+4781
-237
lines changed

.github/workflows/nuget.yml

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,7 @@ jobs:
3838
3939
- name: PushNuget
4040
run: dotnet nuget push "**/*.nupkg" --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_TOKEN }} --skip-duplicate
41-
42-
43-
- name: Add github package source
44-
run: nuget sources Add -Name "github" -Source https://nuget.pkg.github.com/${{github.repository_owner}}/index.json -UserName ${{github.repository_owner}} -Password ${{ secrets.TOKEN_GITHUB_AMAZON_SP_API }}
45-
46-
47-
- name: Push to GitHub Packages
48-
run: dotnet nuget push "**/*.nupkg" --skip-duplicate --source https://nuget.pkg.github.com/${{github.repository_owner}}/index.json --api-key ${GITHUB_TOKEN}
49-
env:
50-
GITHUB_TOKEN: ${{ secrets.TOKEN_GITHUB_AMAZON_SP_API }}
51-
41+
5242
- name: Get tag
5343
id: tag
5444
uses: dawidd6/action-get-tag@v1

Amazon-SP-API-CSharp.sln

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ EndProject
88
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{177F077C-82C9-4DBB-BA03-CF8E14D4AB4E}"
99
ProjectSection(SolutionItems) = preProject
1010
.gitignore = .gitignore
11-
azure-pipelines.yml = azure-pipelines.yml
11+
.github\workflows\dotnet.yml = .github\workflows\dotnet.yml
1212
LICENSE = LICENSE
13+
.github\workflows\nuget.yml = .github\workflows\nuget.yml
1314
PII_QA.md = PII_QA.md
1415
README.md = README.md
1516
EndProjectSection

README.md

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ The purpose of this package is to have an easy way of getting started with the A
1212
- [AWSSDK.SecurityToken](https://www.nuget.org/packages/AWSSDK.SecurityToken/)
1313
- [AWSSDK.SQS](https://www.nuget.org/packages/AWSSDK.SQS/)
1414
- [Microsoft.CSharp](https://www.nuget.org/packages/Microsoft.CSharp/)
15-
- [Newtonsoft.Json](https://www.nuget.org/packages/Newtonsoft.Json/)
16-
- [RestSharp](https://www.nuget.org/packages/RestSharp/)
1715
- [System.ComponentModel.Annotations](https://www.nuget.org/packages/System.ComponentModel.Annotations/)
1816
- [System.Reflection](https://www.nuget.org/packages/System.Reflection/)
1917

@@ -148,24 +146,24 @@ You need to add windows-1252 encoding
148146

149147
### Order List, For more orders sample please check [Here](https://github.com/abuzuhri/Amazon-SP-API-CSharp/blob/main/Source/FikaAmazonAPI.SampleCode/ReportsSample.cs).
150148
```CSharp
151-
ParameterOrderList serachOrderList = new ParameterOrderList();
152-
serachOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
153-
serachOrderList.OrderStatuses = new List<OrderStatuses>();
154-
serachOrderList.OrderStatuses.Add(OrderStatuses.Canceled);
155-
var orders = amazonConnection.Orders.GetOrders(serachOrderList);
149+
ParameterOrderList searchOrderList = new ParameterOrderList();
150+
searchOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
151+
searchOrderList.OrderStatuses = new List<OrderStatuses>();
152+
searchOrderList.OrderStatuses.Add(OrderStatuses.Canceled);
153+
var orders = amazonConnection.Orders.GetOrders(searchOrderList);
156154

157155
```
158156

159157

160158
### Order List with parameter
161159
```CSharp
162-
ParameterOrderList serachOrderList = new ParameterOrderList();
163-
serachOrderList.CreatedAfter = DateTime.UtcNow.AddHours(-24);
164-
serachOrderList.OrderStatuses = new List<OrderStatuses>();
165-
serachOrderList.OrderStatuses.Add(OrderStatuses.Unshipped);
166-
serachOrderList.MarketplaceIds = new List<string> { MarketPlace.UnitedArabEmirates.ID };
160+
ParameterOrderList searchOrderList = new ParameterOrderList();
161+
searchOrderList.CreatedAfter = DateTime.UtcNow.AddHours(-24);
162+
searchOrderList.OrderStatuses = new List<OrderStatuses>();
163+
searchOrderList.OrderStatuses.Add(OrderStatuses.Unshipped);
164+
searchOrderList.MarketplaceIds = new List<string> { MarketPlace.UnitedArabEmirates.ID };
167165

168-
var orders = amazonConnection.Orders.GetOrders(serachOrderList);
166+
var orders = amazonConnection.Orders.GetOrders(searchOrderList);
169167

170168
```
171169

@@ -774,7 +772,7 @@ var def = amazonConnection.ProductType.GetDefinitionsProductType(
774772
new Parameter.ProductTypes.GetDefinitionsProductTypeParameter()
775773
{
776774
productType = "PRODUCT",
777-
requirements = RequirementsEnum.LISTING,
775+
requirements = Requirements.LISTING,
778776
locale = AmazonSpApiSDK.Models.ProductTypes.LocaleEnum.en_US
779777
});
780778
```

Source/FikaAmazonAPI.SampleCode/FeedsSample.cs

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,9 @@ public async Task SubmitFeedPRICING_JSONAsync(string SKU, decimal PRICE, decimal
200200
msg.MaximumSellerAllowedPrice = new StandardPrice()
201201
{
202202
currency = amazonConnection.GetCurrentMarketplace.CurrencyCode.ToString(),
203-
Value = decimal.Round(maxPrice.Value, 2)
203+
Value = decimal.Round(maxPrice.Value, 2),
204+
start_at = "2024-01-01",
205+
end_at = "2025-01-01"
204206
};
205207
}
206208

@@ -209,7 +211,9 @@ public async Task SubmitFeedPRICING_JSONAsync(string SKU, decimal PRICE, decimal
209211
msg.MinimumSellerAllowedPrice = new StandardPrice()
210212
{
211213
currency = amazonConnection.GetCurrentMarketplace.CurrencyCode.ToString(),
212-
Value = decimal.Round(minPrice.Value, 2)
214+
Value = decimal.Round(minPrice.Value, 2),
215+
start_at = "2024-01-01",
216+
end_at = "2025-01-01"
213217
};
214218
}
215219

@@ -226,6 +230,29 @@ public async Task SubmitFeedPRICING_JSONAsync(string SKU, decimal PRICE, decimal
226230

227231
}
228232

233+
public async Task SubmitInventoryJSON_Async(string SKU, int quantity, DateTime? restockDate = null)
234+
{
235+
ConstructJSONFeedService createDocument = new ConstructJSONFeedService(amazonConnection.GetCurrentSellerID);
236+
237+
var list = new List<InventoryMessage>();
238+
var msg = new InventoryMessage()
239+
{
240+
SKU = SKU,
241+
Quantity = quantity,
242+
RestockDate = restockDate
243+
};
244+
245+
list.Add(msg);
246+
createDocument.AddInventoryMessage(list);
247+
248+
var jsonString = createDocument.GetJSON();
249+
250+
string feedID = await amazonConnection.Feed.SubmitFeedAsync(jsonString, FeedType.JSON_LISTINGS_FEED, null, null, ContentType.JSON);
251+
252+
await GetJsonFeedDetails(feedID);
253+
254+
}
255+
229256
public async Task SubmitFeedPricingWithSalePrice(string sku, decimal price, decimal salePrice, DateTime startDate, DateTime endDate)
230257
{
231258
var currencyCode = amazonConnection.GetCurrentMarketplace.CurrencyCode.ToString();

Source/FikaAmazonAPI.SampleCode/FikaAmazonAPI.SampleCode.csproj

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,18 @@
1919
</ItemGroup>
2020

2121
<ItemGroup>
22-
<PackageReference Include="AWSSDK.SecurityToken" Version="3.7.300.106" />
23-
<PackageReference Include="AWSSDK.SQS" Version="3.7.301.19" />
22+
<PackageReference Include="AWSSDK.SecurityToken" Version="4.0.1.3" />
23+
<PackageReference Include="AWSSDK.SQS" Version="4.0.0.13" />
2424
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
25-
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
26-
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.1" />
27-
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="8.0.0" />
28-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
29-
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="8.0.0" />
30-
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.0" />
31-
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="8.0.0" />
25+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.6" />
26+
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.6" />
27+
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="9.0.6" />
28+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.6" />
29+
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.6" />
30+
<PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.6" />
31+
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="9.0.6" />
3232
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
33-
<PackageReference Include="RestSharp" Version="112.1.0" />
34-
<PackageReference Include="RestSharp.Serializers.NewtonsoftJson" Version="111.2.0" />
35-
<PackageReference Include="Serilog.Extensions.Logging" Version="8.0.0" />
33+
<PackageReference Include="Serilog.Extensions.Logging" Version="9.0.2" />
3634
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
3735
<PackageReference Include="System.Collections" Version="4.3.0" />
3836
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />

Source/FikaAmazonAPI.SampleCode/FinancialSample.cs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System;
1+
using FikaAmazonAPI.AmazonSpApiSDK.Models.Finances;
2+
using System;
23
using System.Collections.Generic;
34
using System.Linq;
45
using System.Text;
@@ -14,15 +15,27 @@ public FinancialSample(AmazonConnection amazonConnection)
1415
this.amazonConnection = amazonConnection;
1516
}
1617

17-
public void ListFinancialEventGroups()
18+
public IList<FinancialEventGroup> ListFinancialEventGroups()
1819
{
19-
amazonConnection.Financial.ListFinancialEventGroups(new Parameter.Finance.ParameterListFinancialEventGroup()
20+
return amazonConnection.Financial.ListFinancialEventGroups(new Parameter.Finance.ParameterListFinancialEventGroup()
2021
{
2122
FinancialEventGroupStartedAfter = DateTime.UtcNow.AddDays(-10),
2223
FinancialEventGroupStartedBefore = DateTime.UtcNow.AddDays(-1),
2324
MaxResultsPerPage = 55
2425
});
26+
}
2527

28+
public List<FinancialEvents> ListFinancialEventsByGroupId(string financialGroupId)
29+
{
30+
var financialEventsWithoutParams = amazonConnection.Financial.ListFinancialEventsByGroupId(financialGroupId);
31+
var financialEventsWithParams = amazonConnection.Financial.ListFinancialEventsByGroupId(financialGroupId,
32+
new Parameter.Finance.ParameterListFinancialEventsByGroupId()
33+
{
34+
PostedAfter = DateTime.UtcNow.AddDays(-170),
35+
PostedBefore = DateTime.UtcNow.AddMinutes(-60),
36+
MaxResultsPerPage = 55
37+
});
38+
return financialEventsWithParams;
2639
}
2740
}
2841
}

Source/FikaAmazonAPI.SampleCode/OrdersSample.cs

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -19,63 +19,63 @@ public OrdersSample(AmazonConnection amazonConnection)
1919
public void GetOrdersOnePageWithNextPageToken()
2020
{
2121
// ONLY USE THIS SAMPLE IF YOU NEED TO GET ONE PAGE EACH TIME other wise remove parameter 'MaxNumberOfPages' and libaray will fetch all orders to you
22-
ParameterOrderList serachOrderList = new ParameterOrderList();
23-
serachOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
24-
serachOrderList.MaxNumberOfPages = 1;
25-
serachOrderList.OrderStatuses = new List<OrderStatuses>();
26-
serachOrderList.OrderStatuses.Add(OrderStatuses.Shipped);
22+
ParameterOrderList searchOrderList = new ParameterOrderList();
23+
searchOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
24+
searchOrderList.MaxNumberOfPages = 1;
25+
searchOrderList.OrderStatuses = new List<OrderStatuses>();
26+
searchOrderList.OrderStatuses.Add(OrderStatuses.Shipped);
2727

28-
serachOrderList.AmazonOrderIds = new List<string>();
28+
searchOrderList.AmazonOrderIds = new List<string>();
2929

30-
var orders = amazonConnection.Orders.GetOrders(serachOrderList);
30+
var orders = amazonConnection.Orders.GetOrders(searchOrderList);
3131
var nextPageToken = orders.NextToken;
3232
while (!string.IsNullOrEmpty(nextPageToken))
3333
{
34-
var moreOrders = amazonConnection.Orders.GetGetOrdersByNextToken(nextPageToken, serachOrderList);
34+
var moreOrders = amazonConnection.Orders.GetGetOrdersByNextToken(nextPageToken, searchOrderList);
3535
nextPageToken = moreOrders.NextToken;
3636
}
3737

3838
}
3939
public void GetOrders()
4040
{
41-
ParameterOrderList serachOrderList = new ParameterOrderList();
42-
serachOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
41+
ParameterOrderList searchOrderList = new ParameterOrderList();
42+
searchOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
4343

44-
serachOrderList.OrderStatuses = new List<OrderStatuses>();
45-
serachOrderList.OrderStatuses.Add(OrderStatuses.Shipped);
44+
searchOrderList.OrderStatuses = new List<OrderStatuses>();
45+
searchOrderList.OrderStatuses.Add(OrderStatuses.Shipped);
4646

47-
serachOrderList.AmazonOrderIds = new List<string>();
48-
serachOrderList.AmazonOrderIds.Add("403-1710607-6240347");
49-
serachOrderList.AmazonOrderIds.Add("403-5583945-7236361");
50-
serachOrderList.AmazonOrderIds.Add("403-3320829-4528316");
51-
serachOrderList.AmazonOrderIds.Add("406-2574982-2047546");
47+
searchOrderList.AmazonOrderIds = new List<string>();
48+
searchOrderList.AmazonOrderIds.Add("403-1710607-6240347");
49+
searchOrderList.AmazonOrderIds.Add("403-5583945-7236361");
50+
searchOrderList.AmazonOrderIds.Add("403-3320829-4528316");
51+
searchOrderList.AmazonOrderIds.Add("406-2574982-2047546");
5252

53-
var orders = amazonConnection.Orders.GetOrders(serachOrderList);
53+
var orders = amazonConnection.Orders.GetOrders(searchOrderList);
5454
}
5555

5656
/// <summary>
5757
/// You must have valid PII developer to be able to call this method
5858
/// </summary>
5959
public void GetOrdersPIISimple()
6060
{
61-
ParameterOrderList serachOrderList = new ParameterOrderList();
62-
serachOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
61+
ParameterOrderList searchOrderList = new ParameterOrderList();
62+
searchOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
6363

64-
serachOrderList.OrderStatuses = new List<OrderStatuses>();
65-
serachOrderList.OrderStatuses.Add(OrderStatuses.Unshipped);
64+
searchOrderList.OrderStatuses = new List<OrderStatuses>();
65+
searchOrderList.OrderStatuses.Add(OrderStatuses.Unshipped);
6666

67-
//You must have valid PII developer to be able to call this
68-
serachOrderList.IsNeedRestrictedDataToken = true;
67+
//You must have valid PII developer to be able to call this
68+
searchOrderList.IsNeedRestrictedDataToken = true;
6969

70-
var orders = amazonConnection.Orders.GetOrders(serachOrderList);
70+
var orders = amazonConnection.Orders.GetOrders(searchOrderList);
7171
}
7272
public void GetOrdersPIIAdvance()
7373
{
74-
ParameterOrderList serachOrderList = new ParameterOrderList();
75-
serachOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
74+
ParameterOrderList searchOrderList = new ParameterOrderList();
75+
searchOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
7676

77-
serachOrderList.OrderStatuses = new List<OrderStatuses>();
78-
serachOrderList.OrderStatuses.Add(OrderStatuses.Unshipped);
77+
searchOrderList.OrderStatuses = new List<OrderStatuses>();
78+
searchOrderList.OrderStatuses.Add(OrderStatuses.Unshipped);
7979

8080
//You must have valid PII developer to be able to call this
8181
var restrictedResource = new RestrictedResource();
@@ -88,10 +88,10 @@ public void GetOrdersPIIAdvance()
8888
{
8989
restrictedResources = new List<RestrictedResource> { restrictedResource }
9090
};
91-
serachOrderList.RestrictedDataTokenRequest = createRDT;
92-
serachOrderList.IsNeedRestrictedDataToken = true;
91+
searchOrderList.RestrictedDataTokenRequest = createRDT;
92+
searchOrderList.IsNeedRestrictedDataToken = true;
9393

94-
var orders = amazonConnection.Orders.GetOrders(serachOrderList);
94+
var orders = amazonConnection.Orders.GetOrders(searchOrderList);
9595
}
9696

9797
public void GetOrderBuyerInfo()

Source/FikaAmazonAPI.SampleCode/ProductTypeSample.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using static FikaAmazonAPI.AmazonSpApiSDK.Models.ListingsItems.ListingsItemPutRequest;
1+
using FikaAmazonAPI.Parameter.ListingItem;
22

33
namespace FikaAmazonAPI.SampleCode
44
{
@@ -27,7 +27,7 @@ private void GetDefinitionsProductType()
2727
new Parameter.ProductTypes.GetDefinitionsProductTypeParameter()
2828
{
2929
productType = "PRODUCT",
30-
requirements = RequirementsEnum.LISTING,
30+
requirements = Requirements.LISTING,
3131
locale = AmazonSpApiSDK.Models.ProductTypes.LocaleEnum.en_US
3232
});
3333
}

Source/FikaAmazonAPI.SampleCode/Program.cs

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using Microsoft.Extensions.Configuration;
1+
using FikaAmazonAPI.AmazonSpApiSDK.Models.FulfillmentInbound;
2+
using FikaAmazonAPI.Utils;
3+
using Microsoft.Extensions.Configuration;
24
using Microsoft.Extensions.Logging;
35

46
namespace FikaAmazonAPI.SampleCode
@@ -25,8 +27,27 @@ static async Task Main(string[] args)
2527
IsDebugMode = true
2628
}, loggerFactory: factory);
2729

28-
FeedsSample feedsSample = new FeedsSample(amazonConnection);
29-
_ = feedsSample.SubmitFeedPRICING_JSONAsync("B087YHP3HQ.151", 131.77M, 67.70M, 131.77M);
30+
var plan = amazonConnection.FulFillmentInboundv20240320.ListInboundPlans(new Parameter.FulFillmentInbound.v20240320.ParameterListInboundPlans
31+
{
32+
Status = AmazonSpApiSDK.Models.FulfillmentInboundv20240320.InboundPlanStatus.ACTIVE
33+
});
34+
35+
36+
//var list = amazonConnection.Seller.GetMarketplaceParticipations();
37+
38+
var list= amazonConnection.FulFillmentInbound.GetShipments(new Parameter.FulFillmentInbound.ParameterGetShipments()
39+
{
40+
MarketplaceId = MarketPlace.UnitedArabEmirates.ID,
41+
ShipmentStatusList = new List<ShipmentStatus> { ShipmentStatus.WORKING, ShipmentStatus.SHIPPED, ShipmentStatus.RECEIVING }
42+
});
43+
44+
45+
// var itemsList=amazonConnection.FulFillmentInbound.GetShipmentItemsByShipmentId("FBA15KBCBMXC");
46+
47+
48+
49+
//FeedsSample feedsSample = new FeedsSample(amazonConnection);
50+
//feedsSample.SubmitFeedPRICING_JSONAsync("B09H73T814.259", 112.0M, 53.51M, 112.20M).GetAwaiter().GetResult();
3051

3152

3253
Console.ReadLine();

Source/FikaAmazonAPI.SampleCode/TokenSample.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,15 @@ public void OrdersPII()
5555
};
5656

5757

58-
ParameterOrderList serachOrderList = new ParameterOrderList();
59-
serachOrderList.CreatedAfter = DateTime.UtcNow.AddHours(-24);
60-
serachOrderList.OrderStatuses = new List<OrderStatuses>();
61-
serachOrderList.OrderStatuses.Add(OrderStatuses.Unshipped);
62-
serachOrderList.MarketplaceIds = new List<string> { MarketPlace.UnitedArabEmirates.ID };
63-
serachOrderList.RestrictedDataTokenRequest = createRDT;
64-
serachOrderList.IsNeedRestrictedDataToken = true;
58+
ParameterOrderList searchOrderList = new ParameterOrderList();
59+
searchOrderList.CreatedAfter = DateTime.UtcNow.AddHours(-24);
60+
searchOrderList.OrderStatuses = new List<OrderStatuses>();
61+
searchOrderList.OrderStatuses.Add(OrderStatuses.Unshipped);
62+
searchOrderList.MarketplaceIds = new List<string> { MarketPlace.UnitedArabEmirates.ID };
63+
searchOrderList.RestrictedDataTokenRequest = createRDT;
64+
searchOrderList.IsNeedRestrictedDataToken = true;
6565

66-
var orders = amazonConnection.Orders.GetOrders(serachOrderList);
66+
var orders = amazonConnection.Orders.GetOrders(searchOrderList);
6767

6868

6969
}

0 commit comments

Comments
 (0)