Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,12 @@ For more information about keys, check the [Amazon developer documentation](http
---
## Usage

> ### Please be aware there has been a change to the _Orders.GetOrderAddress()_ method please reference the new sample code for more details.
> ### Heads-up: Amazon-side changes affecting this library
>
> - **Catalog Items API v0 was removed by Amazon on 2025-03-31.** `CatalogItem.ListCatalogItems`, `CatalogItem.ListCatalogCategories`, and `CatalogItem.GetCatalogItemJson` are now marked obsolete because the underlying endpoints no longer exist. Use the 2022-04-01 methods (`SearchCatalogItems202204`, `GetCatalogItem202204`) instead.
> - **XML feed types (e.g. the legacy inventory feed) were turned off on 2025-07-31.** If you previously submitted inventory updates with `_POST_INVENTORY_AVAILABILITY_DATA_` or similar XML feed types, migrate to `FeedType.JSON_LISTINGS_FEED` with a JSON-Patch payload (see `FeedsSample.cs`).
Copy link

Copilot AI Apr 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In Markdown, _POST_INVENTORY_AVAILABILITY_DATA_ will render as italic text rather than a literal feed type. Wrap the feed type(s) in backticks so users can copy/paste the exact value and the formatting stays consistent with the other inline code in this block.

Copilot uses AI. Check for mistakes.
> - **Orders API v0 will be removed on 2027-03-27.** All six v0 operations (`getOrders`, `getOrder`, `getOrderBuyerInfo`, `getOrderAddress`, `getOrderItems`, `getOrderItemsBuyerInfo`) will start failing on that date. For new code, prefer `amazonConnection.OrdersV20260101` (Orders API v2026-01-01), which collapses those six operations into `getOrder` and `searchOrders`.
> - **`Address.Name` (Orders v0) is now optional** as of Amazon's 2025-10 release. The constructor in `AmazonSpApiSDK.Models.Orders.Address` no longer throws when `name` is null — handle null `Name` defensively in your code.

### Configuration
You can configure a connection as shown below. See [Here](https://github.com/abuzuhri/Amazon-SP-API-CSharp/blob/main/Source/FikaAmazonAPI.SampleCode/Program.cs) for the relevant code file.
Expand Down
3 changes: 2 additions & 1 deletion Source/FikaAmazonAPI.SampleCode/CatalogItemsSample.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,14 @@

}

[Obsolete("Catalog Items API v0 was removed by Amazon on 2025-03-31; this call will fail at runtime. The 2022-04-01 version of the API does not expose a categories endpoint.", true)]

Check warning on line 22 in Source/FikaAmazonAPI.SampleCode/CatalogItemsSample.cs

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Do not forget to remove this deprecated code someday.

See more on https://sonarcloud.io/project/issues?id=abuzuhri_Amazon-SP-API-CSharp&issues=AZ3EhxeczR5Y5AHZgAZS&open=AZ3EhxeczR5Y5AHZgAZS&pullRequest=932
public void ListCatalogCategories()
{
var item = amazonConnection.CatalogItem.ListCatalogCategories("B00CZC5F0G");

}

[Obsolete("This method deprecated in June 2022. Please use SearchCatalogItems202204 instead.", true)]
[Obsolete("Catalog Items API v0 was removed by Amazon on 2025-03-31; this call will fail at runtime. Use SearchCatalogItems202204 instead.", true)]

Check warning on line 29 in Source/FikaAmazonAPI.SampleCode/CatalogItemsSample.cs

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Do not forget to remove this deprecated code someday.

See more on https://sonarcloud.io/project/issues?id=abuzuhri_Amazon-SP-API-CSharp&issues=AZ3EhxeczR5Y5AHZgAZT&open=AZ3EhxeczR5Y5AHZgAZT&pullRequest=932
public void ListCatalogItems()
{
var items = amazonConnection.CatalogItem.ListCatalogItems(new Parameter.CatalogItems.ParameterListCatalogItems()
Expand Down
13 changes: 2 additions & 11 deletions Source/FikaAmazonAPI/AmazonSpApiSDK/Models/Orders/Address.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Runtime.Serialization;
using System.Text;

Expand Down Expand Up @@ -60,7 +59,7 @@ public Address() { }
/// <summary>
/// Initializes a new instance of the <see cref="Address" /> class.
/// </summary>
/// <param name="name">The name. (required).</param>
/// <param name="name">The name..</param>
Copy link

Copilot AI Apr 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

XML doc typo: the name parameter description has a double period (The name..). Update it to a single period and (optionally) clarify that the value is now optional/null-able to match the constructor behavior.

Suggested change
/// <param name="name">The name..</param>
/// <param name="name">The name. Optional; can be null.</param>

Copilot uses AI. Check for mistakes.
/// <param name="companyName">The name of the business or organization at this address..</param>
/// <param name="addressLine1">The street address..</param>
/// <param name="addressLine2">Additional street address information, if required..</param>
Expand All @@ -76,15 +75,7 @@ public Address() { }
/// <param name="addressType">The address type of the shipping address..</param>
public Address(string name = default(string), string companyName = default(string), string addressLine1 = default(string), string addressLine2 = default(string), string addressLine3 = default(string), string city = default(string), string county = default(string), string district = default(string), string stateOrRegion = default(string), string municipality = default(string), string postalCode = default(string), string countryCode = default(string), string phone = default(string), AddressTypeEnum? addressType = default(AddressTypeEnum?))
{
// to ensure "name" is required (not null)
if (name == null)
{
throw new InvalidDataException("name is a required property for Address and cannot be null");
}
else
{
this.Name = name;
}
this.Name = name;
this.CompanyName = companyName;
this.AddressLine1 = addressLine1;
this.AddressLine2 = addressLine2;
Expand Down
12 changes: 10 additions & 2 deletions Source/FikaAmazonAPI/Services/CatalogItemService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,17 @@
{
public class CatalogItemService : RequestService
{
public CatalogItemService(AmazonCredential amazonCredential, ILoggerFactory? loggerFactory) : base(amazonCredential, loggerFactory)

Check warning on line 18 in Source/FikaAmazonAPI/Services/CatalogItemService.cs

View workflow job for this annotation

GitHub Actions / build

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
{

}

[Obsolete("This method deprecated in June 2022. Please use SearchCatalogItems202204 instead.", false)]
[Obsolete("Catalog Items API v0 was removed by Amazon on 2025-03-31; this call will fail at runtime. Use SearchCatalogItems202204 instead.", false)]
[EditorBrowsable(EditorBrowsableState.Never)]
public IList<Item> ListCatalogItems(ParameterListCatalogItems parameterListCatalogItems) =>
Task.Run(() => ListCatalogItemsAsync(parameterListCatalogItems)).ConfigureAwait(false).GetAwaiter().GetResult();

[Obsolete("This method deprecated in June 2022. Please use SearchCatalogItems202204Async instead.", false)]
[Obsolete("Catalog Items API v0 was removed by Amazon on 2025-03-31; this call will fail at runtime. Use SearchCatalogItems202204Async instead.", false)]
[EditorBrowsable(EditorBrowsableState.Never)]
public async Task<IList<Item>> ListCatalogItemsAsync(ParameterListCatalogItems parameterListCatalogItems)
{
Expand Down Expand Up @@ -54,9 +54,13 @@

return list;
}
[Obsolete("Catalog Items API v0 was removed by Amazon on 2025-03-31; this call will fail at runtime. Use GetCatalogItem202204 instead.", false)]

Check warning on line 57 in Source/FikaAmazonAPI/Services/CatalogItemService.cs

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Do not forget to remove this deprecated code someday.

See more on https://sonarcloud.io/project/issues?id=abuzuhri_Amazon-SP-API-CSharp&issues=AZ3EhxchzR5Y5AHZgAZO&open=AZ3EhxchzR5Y5AHZgAZO&pullRequest=932
[EditorBrowsable(EditorBrowsableState.Never)]
public String GetCatalogItemJson(string asin) =>
Task.Run(() => GetCatalogItemAsyncJson(asin)).ConfigureAwait(false).GetAwaiter().GetResult();

[Obsolete("Catalog Items API v0 was removed by Amazon on 2025-03-31; this call will fail at runtime. Use GetCatalogItem202204Async instead.", false)]

Check warning on line 62 in Source/FikaAmazonAPI/Services/CatalogItemService.cs

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Do not forget to remove this deprecated code someday.

See more on https://sonarcloud.io/project/issues?id=abuzuhri_Amazon-SP-API-CSharp&issues=AZ3EhxchzR5Y5AHZgAZP&open=AZ3EhxchzR5Y5AHZgAZP&pullRequest=932
[EditorBrowsable(EditorBrowsableState.Never)]
public async Task<String> GetCatalogItemAsyncJson(string asin)
{

Expand Down Expand Up @@ -99,9 +103,13 @@
}


[Obsolete("Catalog Items API v0 was removed by Amazon on 2025-03-31; this call will fail at runtime. The 2022-04-01 version of the API does not expose a categories endpoint.", false)]

Check warning on line 106 in Source/FikaAmazonAPI/Services/CatalogItemService.cs

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Do not forget to remove this deprecated code someday.

See more on https://sonarcloud.io/project/issues?id=abuzuhri_Amazon-SP-API-CSharp&issues=AZ3EhxchzR5Y5AHZgAZQ&open=AZ3EhxchzR5Y5AHZgAZQ&pullRequest=932
[EditorBrowsable(EditorBrowsableState.Never)]
public IList<Categories> ListCatalogCategories(string ASIN, string SellerSKU = null, string MarketPlaceID = null) =>
Task.Run(() => ListCatalogCategoriesAsync(ASIN, SellerSKU, MarketPlaceID)).ConfigureAwait(false).GetAwaiter().GetResult();

[Obsolete("Catalog Items API v0 was removed by Amazon on 2025-03-31; this call will fail at runtime. The 2022-04-01 version of the API does not expose a categories endpoint.", false)]

Check warning on line 111 in Source/FikaAmazonAPI/Services/CatalogItemService.cs

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Do not forget to remove this deprecated code someday.

See more on https://sonarcloud.io/project/issues?id=abuzuhri_Amazon-SP-API-CSharp&issues=AZ3EhxchzR5Y5AHZgAZR&open=AZ3EhxchzR5Y5AHZgAZR&pullRequest=932
[EditorBrowsable(EditorBrowsableState.Never)]
public async Task<IList<Categories>> ListCatalogCategoriesAsync(string ASIN, string SellerSKU = null, string MarketPlaceID = null, CancellationToken cancellationToken = default)
{
if (string.IsNullOrEmpty(ASIN))
Expand Down
Loading