In this article, we will learn about getting Amazon Asin category using the Amazon MWS API in C#. We will use the latest version of the NuGet as this functionality is provided in the latest version only.
So let’s get started.
Firstly, install the NuGet package using Amazon MWS API.
Install-Package MarketplaceWebService -Version 1.0.0 Install-Package MarketplaceWebServiceOrders -Version 1.0.0 Install-Package MWSProductsCSharpClientLibrary -Version 2017.3.22
Starting from _Layout.cshtml file.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>@ViewBag.Title - Amazon MWS API</title> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") </head> <body> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> @Html.ActionLink("Amazon MWS API", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" }) </div> <div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li>@Html.ActionLink("Home", "Index", "Home")</li> </ul> </div> </div> </div> <div class="container body-content"> @RenderBody() <hr /> <footer> <p>© @DateTime.Now.Year - My ASP.NET Application</p> </footer> </div> @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false) </body> </html>
Navigate to View -> Home -> Index.cshtml
@{ ViewBag.Title = "Home Page"; } <div class="col-md-4"> <div class="form-group"> <input type="text" id="txtAsin" class="form-control" /> </div> </div> <div class="col-md-4"> <div class="form-group"> <input type="button" id="btnGetCategory" class="btn btn-success" value="Get Category" /> </div> </div> <table class="table table-bordered"> <thead> <tr> <th>Category Id</th> <th>Category Name</th> </tr> </thead> <tbody class="tbody"></tbody> </table> @section scripts{ <script> $(document).on('click', '#btnGetCategory', function () { var asinValue = $('#txtAsin').val(); if (asinValue.trim() == "") { alert("Please enter asin value"); return; } $.ajax({ url: '/Home/GetAsinCategory', data: { 'Asin': asinValue }, success: function (res) { debugger if (res.status) { var html = ''; for (var i = 0; i < res.categoryId.length; i++) { html += '<tr>\ <td> '+ res.categoryId[i] + '</td>\ <td> '+ res.categoryName[i] + '</td>\ </tr>'; } $('.tbody').empty().append(html); } else { alert("Something went wrong while getting category from API"); } }, error: function (err) { } }); }); </script> }
We have to add the Credentials in Web.Config file present in the root directory.
<add key="ServiceURL" value="https://mws.amazonservices.com" /> <add key="SellerId" value="seller-id" /> <add key="MarketplaceID" value="marketplace-id" /> <add key="AccessKeyID" value="access-key" /> <add key="SecretKey" value="secret-key" />
Finally, the code which makes us possible to call through the API
using MarketplaceWebService; using MarketplaceWebServiceProducts; using MarketplaceWebServiceProducts.Model; using System; using System.Collections.Generic; using System.Configuration; using System.Web.Mvc; using System.Xml; namespace GetProductCategoryFromAsinInMWS.Controllers { public class HomeController : Controller { public static MarketplaceWebServiceConfig _config; public static MarketplaceWebServiceClient _amazonClient; public static MarketplaceWebServiceClient _reportClient; public static MarketplaceWebServiceConfig _reportConfig; public static MarketplaceWebServiceProductsConfig _productConfig; public static MarketplaceWebServiceProducts.MarketplaceWebServiceProducts _productClient; public static string _sellerId = ""; public static string _marketplaceID = ""; public static string _accessKeyID = ""; public static string _secretKey = ""; public static string _serviceUrl = ""; public HomeController() { _sellerId = ConfigurationManager.AppSettings["SellerId"]; _marketplaceID = ConfigurationManager.AppSettings["MarketplaceID"]; _accessKeyID = ConfigurationManager.AppSettings["AccessKeyID"]; _secretKey = ConfigurationManager.AppSettings["SecretKey"]; _serviceUrl = ConfigurationManager.AppSettings["ServiceURL"]; _config = new MarketplaceWebServiceConfig { ServiceURL = _serviceUrl }; _reportConfig = new MarketplaceWebServiceConfig { ServiceURL = _serviceUrl }; _reportClient = new MarketplaceWebServiceClient(_accessKeyID, _secretKey, "MWS", "1.0", _reportConfig); _amazonClient = new MarketplaceWebServiceClient(_accessKeyID, _secretKey, "MWS", "1.0", _config); _productConfig = new MarketplaceWebServiceProductsConfig { ServiceURL = _serviceUrl }; _productClient = new MarketplaceWebServiceProductsClient("MWS", "1.0", _accessKeyID, _secretKey, _productConfig); } public ActionResult Index() => View(); public GetProductCategoriesForASINResponse InvokeGetProductCategoryForAsin(string ASIN) { try { GetProductCategoriesForASINRequest request = new GetProductCategoriesForASINRequest(); request.ASIN = ASIN; request.MarketplaceId = _marketplaceID; request.MWSAuthToken = "example"; request.SellerId = _sellerId; return _productClient.GetProductCategoriesForASIN(request); } catch (Exception ex) { return null; } } public JsonResult GetAsinCategory(string Asin) { try { var response = InvokeGetProductCategoryForAsin(Asin); if (response == null) return Json(new { status = false }, JsonRequestBehavior.AllowGet); XmlDocument root = new XmlDocument(); root.LoadXml(response.ToXML()); XmlNodeList elemListForCategoryName = root.GetElementsByTagName("ProductCategoryName"); XmlNodeList elemListForCategoryId = root.GetElementsByTagName("ProductCategoryId"); List<string> categoryIdsAPI = new List<string>(); List<string> categoryNamesAPI = new List<string>(); for (int i = 0; i < elemListForCategoryId.Count; i++) { categoryNamesAPI.Add(elemListForCategoryName[i]?.InnerText); categoryIdsAPI.Add(elemListForCategoryId[i]?.InnerText); } return Json(new { status = true, categoryName = categoryNamesAPI, categoryId = categoryIdsAPI }, JsonRequestBehavior.AllowGet); } catch (Exception) { return Json(new { status = false }, JsonRequestBehavior.AllowGet); } } } }
Output:
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular