How to use access Magento 2 API from C# with REST and Token-based authenticationNo response from POST to custom REST Api routeMagento2 REST api authentication returns 'Decoding error'How to use token base Rest API?Invoke rest api from c#How do I consume the REST API in Magento 2, using AJAX with session-based authentication?REST API Access Token IssuesCustomer session for logged in customer by token based authenticationGet convert resultJsonFactory response to string in Magento2Magento 2 - Best approach for retrieving product data - REST API or Custom Endpoint?How to solve Front controller reached 100 router match iterations in magento2
Can a stoichiometric mixture of oxygen and methane exist as a liquid at standard pressure and some (low) temperature?
How can ping know if my host is down
Why do Radio Buttons not fill the entire outer circle?
Does an advisor owe his/her student anything? Will an advisor keep a PhD student only out of pity?
Does the reader need to like the PoV character?
How would you translate "more" for use as an interface button?
C++ copy constructor called at return
C++ check if statement can be evaluated constexpr
What is going on with gets(stdin) on the site coderbyte?
Mimic lecturing on blackboard, facing audience
Which was the first story featuring espers?
Does the Linux kernel need a file system to run?
How does electrical safety system work on ISS?
Short story about a deaf man, who cuts people tongues
Does Doodling or Improvising on the Piano Have Any Benefits?
How much theory knowledge is actually used while playing?
Shouldn’t conservatives embrace universal basic income?
15% tax on $7.5k earnings. Is that right?
Stack Interview Code methods made from class Node and Smart Pointers
Were Persian-Median kings illiterate?
How to get directions in deep space?
What are some good ways to treat frozen vegetables such that they behave like fresh vegetables when stir frying them?
How to preserve electronics (computers, iPads and phones) for hundreds of years
Pre-mixing cryogenic fuels and using only one fuel tank
How to use access Magento 2 API from C# with REST and Token-based authentication
No response from POST to custom REST Api routeMagento2 REST api authentication returns 'Decoding error'How to use token base Rest API?Invoke rest api from c#How do I consume the REST API in Magento 2, using AJAX with session-based authentication?REST API Access Token IssuesCustomer session for logged in customer by token based authenticationGet convert resultJsonFactory response to string in Magento2Magento 2 - Best approach for retrieving product data - REST API or Custom Endpoint?How to solve Front controller reached 100 router match iterations in magento2
I create an Integration -> Activate -> Obtained the Access Token
Like is described here: http://devdocs.magento.com/guides/v2.2/get-started/authentication/gs-authentication-token.html
And in my test project I get this in response object:
Content:
""message":"Consumer is not authorized to access %resources","parameters":"resources":"Magento_Catalog::categories""
StatusCode:
System.Net.HttpStatusCode.Unauthorized
I create a class Magento:
public class Magento
private RestClient Client get; set;
private string Token get; set;
public Magento(string magentoUrl, string token)
Token = token;
Client = new RestClient(magentoUrl);
private RestRequest CreateRequest(string endPoint, Method method, string token)
var request = new RestRequest(endPoint, method);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Authorization", "Bearer " + token);
request.AddHeader("Accept", "application/json");
return request;
public string CreateCategory(int id, int ParentId, string categoryName, bool IsActive, bool IncludeInMenu)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Id = id;
category.ParentId = ParentId;
category.Name = categoryName;
category.IsActive = IsActive;
category.IncludeInMenu = IncludeInMenu;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":(" + response.Content;
public void GetSku(string token, string sku)
var request = CreateRequest("/rest/V1/products/" + sku, Method.GET, token);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
M2Product product = JsonConvert.DeserializeObject<M2Product>(response.Content);
public string CreateCategory(string categoryName)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Name = categoryName;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":( "+ response.Content;
public class ProductCategory
[JsonProperty("category")]
public Category Category get; set;
public class Category
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("parent_id")]
public int ParentId get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("is_active")]
public bool IsActive get; set;
[JsonProperty("position")]
public int Position get; set;
[JsonProperty("level")]
public int Level get; set;
[JsonProperty("children")]
public string Children get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("path")]
public string Path get; set;
[JsonProperty("available_sort_by")]
public IList<string> AvailableSortBy get; set;
[JsonProperty("include_in_menu")]
public bool IncludeInMenu get; set;
public class StockItem
[JsonProperty("item_id")]
public int ItemId get; set;
[JsonProperty("product_id")]
public int ProductId get; set;
[JsonProperty("stock_id")]
public int StockId get; set;
[JsonProperty("qty")]
public int Qty get; set;
[JsonProperty("is_in_stock")]
public bool IsInStock get; set;
[JsonProperty("is_qty_decimal")]
public bool IsQtyDecimal get; set;
[JsonProperty("show_default_notification_message")]
public bool ShowDefaultNotificationMessage get; set;
[JsonProperty("use_config_min_qty")]
public bool UseConfigMinQty get; set;
[JsonProperty("min_qty")]
public int MinQty get; set;
[JsonProperty("use_config_min_sale_qty")]
public int UseConfigMinSaleQty get; set;
[JsonProperty("min_sale_qty")]
public int MinSaleQty get; set;
[JsonProperty("use_config_max_sale_qty")]
public bool UseConfigMaxSaleQty get; set;
[JsonProperty("max_sale_qty")]
public int MaxSaleQty get; set;
[JsonProperty("use_config_backorders")]
public bool UseConfigBackorders get; set;
[JsonProperty("backorders")]
public int Backorders get; set;
[JsonProperty("use_config_notify_stock_qty")]
public bool UseConfigNotifyStockQty get; set;
[JsonProperty("notify_stock_qty")]
public int NotifyStockQty get; set;
[JsonProperty("use_config_qty_increments")]
public bool UseConfigQtyIncrements get; set;
[JsonProperty("qty_increments")]
public int QtyIncrements get; set;
[JsonProperty("use_config_enable_qty_inc")]
public bool UseConfigEnableQtyInc get; set;
[JsonProperty("enable_qty_increments")]
public bool EnableQtyIncrements get; set;
[JsonProperty("use_config_manage_stock")]
public bool UseConfigManageStock get; set;
[JsonProperty("manage_stock")]
public bool ManageStock get; set;
[JsonProperty("low_stock_date")]
public object LowStockDate get; set;
[JsonProperty("is_decimal_divided")]
public bool IsDecimalDivided get; set;
[JsonProperty("stock_status_changed_auto")]
public int StockStatusChangedAuto get; set;
public class ExtensionAttributes
[JsonProperty("stock_item")]
public StockItem StockItem get; set;
public class CustomAttribute
[JsonProperty("attribute_code")]
public string AttributeCode get; set;
[JsonProperty("value")]
public object Value get; set;
public class M2Product
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("sku")]
public string Sku get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("attribute_set_id")]
public int AttributeSetId get; set;
[JsonProperty("price")]
public int Price get; set;
[JsonProperty("status")]
public int Status get; set;
[JsonProperty("visibility")]
public int Visibility get; set;
[JsonProperty("type_id")]
public string TypeId get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("extension_attributes")]
public ExtensionAttributes ExtensionAttributes get; set;
[JsonProperty("product_links")]
public IList<object> ProductLinks get; set;
[JsonProperty("options")]
public IList<object> Options get; set;
[JsonProperty("media_gallery_entries")]
public IList<object> MediaGalleryEntries get; set;
[JsonProperty("tier_prices")]
public IList<object> TierPrices get; set;
[JsonProperty("custom_attributes")]
public IList<CustomAttribute> CustomAttributes get; set;
And a form
public partial class Form1 : Form
static private string siteAddress = "http://magento.com/";
static private string token = "d21312d97hosbblablablaqtqawlbw";
Magento objMagneto;
public Form1()
InitializeComponent();
objMagneto = new Magento(siteAddress, token);
private void button1_Click(object sender, EventArgs e)
this.Close();
private void adgClasa_Click(object sender, EventArgs e)
MessageBox.Show(objMagneto.CreateCategory(10, 0, "PC Components", true, true)); // id, ParentId, name, IsActive, IncludeInMenu
magento2 api rest c#
bumped to the homepage by Community♦ 5 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
I create an Integration -> Activate -> Obtained the Access Token
Like is described here: http://devdocs.magento.com/guides/v2.2/get-started/authentication/gs-authentication-token.html
And in my test project I get this in response object:
Content:
""message":"Consumer is not authorized to access %resources","parameters":"resources":"Magento_Catalog::categories""
StatusCode:
System.Net.HttpStatusCode.Unauthorized
I create a class Magento:
public class Magento
private RestClient Client get; set;
private string Token get; set;
public Magento(string magentoUrl, string token)
Token = token;
Client = new RestClient(magentoUrl);
private RestRequest CreateRequest(string endPoint, Method method, string token)
var request = new RestRequest(endPoint, method);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Authorization", "Bearer " + token);
request.AddHeader("Accept", "application/json");
return request;
public string CreateCategory(int id, int ParentId, string categoryName, bool IsActive, bool IncludeInMenu)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Id = id;
category.ParentId = ParentId;
category.Name = categoryName;
category.IsActive = IsActive;
category.IncludeInMenu = IncludeInMenu;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":(" + response.Content;
public void GetSku(string token, string sku)
var request = CreateRequest("/rest/V1/products/" + sku, Method.GET, token);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
M2Product product = JsonConvert.DeserializeObject<M2Product>(response.Content);
public string CreateCategory(string categoryName)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Name = categoryName;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":( "+ response.Content;
public class ProductCategory
[JsonProperty("category")]
public Category Category get; set;
public class Category
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("parent_id")]
public int ParentId get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("is_active")]
public bool IsActive get; set;
[JsonProperty("position")]
public int Position get; set;
[JsonProperty("level")]
public int Level get; set;
[JsonProperty("children")]
public string Children get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("path")]
public string Path get; set;
[JsonProperty("available_sort_by")]
public IList<string> AvailableSortBy get; set;
[JsonProperty("include_in_menu")]
public bool IncludeInMenu get; set;
public class StockItem
[JsonProperty("item_id")]
public int ItemId get; set;
[JsonProperty("product_id")]
public int ProductId get; set;
[JsonProperty("stock_id")]
public int StockId get; set;
[JsonProperty("qty")]
public int Qty get; set;
[JsonProperty("is_in_stock")]
public bool IsInStock get; set;
[JsonProperty("is_qty_decimal")]
public bool IsQtyDecimal get; set;
[JsonProperty("show_default_notification_message")]
public bool ShowDefaultNotificationMessage get; set;
[JsonProperty("use_config_min_qty")]
public bool UseConfigMinQty get; set;
[JsonProperty("min_qty")]
public int MinQty get; set;
[JsonProperty("use_config_min_sale_qty")]
public int UseConfigMinSaleQty get; set;
[JsonProperty("min_sale_qty")]
public int MinSaleQty get; set;
[JsonProperty("use_config_max_sale_qty")]
public bool UseConfigMaxSaleQty get; set;
[JsonProperty("max_sale_qty")]
public int MaxSaleQty get; set;
[JsonProperty("use_config_backorders")]
public bool UseConfigBackorders get; set;
[JsonProperty("backorders")]
public int Backorders get; set;
[JsonProperty("use_config_notify_stock_qty")]
public bool UseConfigNotifyStockQty get; set;
[JsonProperty("notify_stock_qty")]
public int NotifyStockQty get; set;
[JsonProperty("use_config_qty_increments")]
public bool UseConfigQtyIncrements get; set;
[JsonProperty("qty_increments")]
public int QtyIncrements get; set;
[JsonProperty("use_config_enable_qty_inc")]
public bool UseConfigEnableQtyInc get; set;
[JsonProperty("enable_qty_increments")]
public bool EnableQtyIncrements get; set;
[JsonProperty("use_config_manage_stock")]
public bool UseConfigManageStock get; set;
[JsonProperty("manage_stock")]
public bool ManageStock get; set;
[JsonProperty("low_stock_date")]
public object LowStockDate get; set;
[JsonProperty("is_decimal_divided")]
public bool IsDecimalDivided get; set;
[JsonProperty("stock_status_changed_auto")]
public int StockStatusChangedAuto get; set;
public class ExtensionAttributes
[JsonProperty("stock_item")]
public StockItem StockItem get; set;
public class CustomAttribute
[JsonProperty("attribute_code")]
public string AttributeCode get; set;
[JsonProperty("value")]
public object Value get; set;
public class M2Product
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("sku")]
public string Sku get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("attribute_set_id")]
public int AttributeSetId get; set;
[JsonProperty("price")]
public int Price get; set;
[JsonProperty("status")]
public int Status get; set;
[JsonProperty("visibility")]
public int Visibility get; set;
[JsonProperty("type_id")]
public string TypeId get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("extension_attributes")]
public ExtensionAttributes ExtensionAttributes get; set;
[JsonProperty("product_links")]
public IList<object> ProductLinks get; set;
[JsonProperty("options")]
public IList<object> Options get; set;
[JsonProperty("media_gallery_entries")]
public IList<object> MediaGalleryEntries get; set;
[JsonProperty("tier_prices")]
public IList<object> TierPrices get; set;
[JsonProperty("custom_attributes")]
public IList<CustomAttribute> CustomAttributes get; set;
And a form
public partial class Form1 : Form
static private string siteAddress = "http://magento.com/";
static private string token = "d21312d97hosbblablablaqtqawlbw";
Magento objMagneto;
public Form1()
InitializeComponent();
objMagneto = new Magento(siteAddress, token);
private void button1_Click(object sender, EventArgs e)
this.Close();
private void adgClasa_Click(object sender, EventArgs e)
MessageBox.Show(objMagneto.CreateCategory(10, 0, "PC Components", true, true)); // id, ParentId, name, IsActive, IncludeInMenu
magento2 api rest c#
bumped to the homepage by Community♦ 5 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
I create an Integration -> Activate -> Obtained the Access Token
Like is described here: http://devdocs.magento.com/guides/v2.2/get-started/authentication/gs-authentication-token.html
And in my test project I get this in response object:
Content:
""message":"Consumer is not authorized to access %resources","parameters":"resources":"Magento_Catalog::categories""
StatusCode:
System.Net.HttpStatusCode.Unauthorized
I create a class Magento:
public class Magento
private RestClient Client get; set;
private string Token get; set;
public Magento(string magentoUrl, string token)
Token = token;
Client = new RestClient(magentoUrl);
private RestRequest CreateRequest(string endPoint, Method method, string token)
var request = new RestRequest(endPoint, method);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Authorization", "Bearer " + token);
request.AddHeader("Accept", "application/json");
return request;
public string CreateCategory(int id, int ParentId, string categoryName, bool IsActive, bool IncludeInMenu)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Id = id;
category.ParentId = ParentId;
category.Name = categoryName;
category.IsActive = IsActive;
category.IncludeInMenu = IncludeInMenu;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":(" + response.Content;
public void GetSku(string token, string sku)
var request = CreateRequest("/rest/V1/products/" + sku, Method.GET, token);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
M2Product product = JsonConvert.DeserializeObject<M2Product>(response.Content);
public string CreateCategory(string categoryName)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Name = categoryName;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":( "+ response.Content;
public class ProductCategory
[JsonProperty("category")]
public Category Category get; set;
public class Category
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("parent_id")]
public int ParentId get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("is_active")]
public bool IsActive get; set;
[JsonProperty("position")]
public int Position get; set;
[JsonProperty("level")]
public int Level get; set;
[JsonProperty("children")]
public string Children get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("path")]
public string Path get; set;
[JsonProperty("available_sort_by")]
public IList<string> AvailableSortBy get; set;
[JsonProperty("include_in_menu")]
public bool IncludeInMenu get; set;
public class StockItem
[JsonProperty("item_id")]
public int ItemId get; set;
[JsonProperty("product_id")]
public int ProductId get; set;
[JsonProperty("stock_id")]
public int StockId get; set;
[JsonProperty("qty")]
public int Qty get; set;
[JsonProperty("is_in_stock")]
public bool IsInStock get; set;
[JsonProperty("is_qty_decimal")]
public bool IsQtyDecimal get; set;
[JsonProperty("show_default_notification_message")]
public bool ShowDefaultNotificationMessage get; set;
[JsonProperty("use_config_min_qty")]
public bool UseConfigMinQty get; set;
[JsonProperty("min_qty")]
public int MinQty get; set;
[JsonProperty("use_config_min_sale_qty")]
public int UseConfigMinSaleQty get; set;
[JsonProperty("min_sale_qty")]
public int MinSaleQty get; set;
[JsonProperty("use_config_max_sale_qty")]
public bool UseConfigMaxSaleQty get; set;
[JsonProperty("max_sale_qty")]
public int MaxSaleQty get; set;
[JsonProperty("use_config_backorders")]
public bool UseConfigBackorders get; set;
[JsonProperty("backorders")]
public int Backorders get; set;
[JsonProperty("use_config_notify_stock_qty")]
public bool UseConfigNotifyStockQty get; set;
[JsonProperty("notify_stock_qty")]
public int NotifyStockQty get; set;
[JsonProperty("use_config_qty_increments")]
public bool UseConfigQtyIncrements get; set;
[JsonProperty("qty_increments")]
public int QtyIncrements get; set;
[JsonProperty("use_config_enable_qty_inc")]
public bool UseConfigEnableQtyInc get; set;
[JsonProperty("enable_qty_increments")]
public bool EnableQtyIncrements get; set;
[JsonProperty("use_config_manage_stock")]
public bool UseConfigManageStock get; set;
[JsonProperty("manage_stock")]
public bool ManageStock get; set;
[JsonProperty("low_stock_date")]
public object LowStockDate get; set;
[JsonProperty("is_decimal_divided")]
public bool IsDecimalDivided get; set;
[JsonProperty("stock_status_changed_auto")]
public int StockStatusChangedAuto get; set;
public class ExtensionAttributes
[JsonProperty("stock_item")]
public StockItem StockItem get; set;
public class CustomAttribute
[JsonProperty("attribute_code")]
public string AttributeCode get; set;
[JsonProperty("value")]
public object Value get; set;
public class M2Product
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("sku")]
public string Sku get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("attribute_set_id")]
public int AttributeSetId get; set;
[JsonProperty("price")]
public int Price get; set;
[JsonProperty("status")]
public int Status get; set;
[JsonProperty("visibility")]
public int Visibility get; set;
[JsonProperty("type_id")]
public string TypeId get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("extension_attributes")]
public ExtensionAttributes ExtensionAttributes get; set;
[JsonProperty("product_links")]
public IList<object> ProductLinks get; set;
[JsonProperty("options")]
public IList<object> Options get; set;
[JsonProperty("media_gallery_entries")]
public IList<object> MediaGalleryEntries get; set;
[JsonProperty("tier_prices")]
public IList<object> TierPrices get; set;
[JsonProperty("custom_attributes")]
public IList<CustomAttribute> CustomAttributes get; set;
And a form
public partial class Form1 : Form
static private string siteAddress = "http://magento.com/";
static private string token = "d21312d97hosbblablablaqtqawlbw";
Magento objMagneto;
public Form1()
InitializeComponent();
objMagneto = new Magento(siteAddress, token);
private void button1_Click(object sender, EventArgs e)
this.Close();
private void adgClasa_Click(object sender, EventArgs e)
MessageBox.Show(objMagneto.CreateCategory(10, 0, "PC Components", true, true)); // id, ParentId, name, IsActive, IncludeInMenu
magento2 api rest c#
I create an Integration -> Activate -> Obtained the Access Token
Like is described here: http://devdocs.magento.com/guides/v2.2/get-started/authentication/gs-authentication-token.html
And in my test project I get this in response object:
Content:
""message":"Consumer is not authorized to access %resources","parameters":"resources":"Magento_Catalog::categories""
StatusCode:
System.Net.HttpStatusCode.Unauthorized
I create a class Magento:
public class Magento
private RestClient Client get; set;
private string Token get; set;
public Magento(string magentoUrl, string token)
Token = token;
Client = new RestClient(magentoUrl);
private RestRequest CreateRequest(string endPoint, Method method, string token)
var request = new RestRequest(endPoint, method);
request.RequestFormat = DataFormat.Json;
request.AddHeader("Authorization", "Bearer " + token);
request.AddHeader("Accept", "application/json");
return request;
public string CreateCategory(int id, int ParentId, string categoryName, bool IsActive, bool IncludeInMenu)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Id = id;
category.ParentId = ParentId;
category.Name = categoryName;
category.IsActive = IsActive;
category.IncludeInMenu = IncludeInMenu;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":(" + response.Content;
public void GetSku(string token, string sku)
var request = CreateRequest("/rest/V1/products/" + sku, Method.GET, token);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
M2Product product = JsonConvert.DeserializeObject<M2Product>(response.Content);
public string CreateCategory(string categoryName)
var request = CreateRequest("/rest/V1/categories", Method.POST, Token);
var cat = new ProductCategory();
var category = new Category();
category.Name = categoryName;
cat.Category = category;
string json = JsonConvert.SerializeObject(cat, Formatting.Indented);
request.AddParameter("application/json", json, ParameterType.RequestBody);
var response = Client.Execute(request);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
return response.Content;
else
return ":( "+ response.Content;
public class ProductCategory
[JsonProperty("category")]
public Category Category get; set;
public class Category
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("parent_id")]
public int ParentId get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("is_active")]
public bool IsActive get; set;
[JsonProperty("position")]
public int Position get; set;
[JsonProperty("level")]
public int Level get; set;
[JsonProperty("children")]
public string Children get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("path")]
public string Path get; set;
[JsonProperty("available_sort_by")]
public IList<string> AvailableSortBy get; set;
[JsonProperty("include_in_menu")]
public bool IncludeInMenu get; set;
public class StockItem
[JsonProperty("item_id")]
public int ItemId get; set;
[JsonProperty("product_id")]
public int ProductId get; set;
[JsonProperty("stock_id")]
public int StockId get; set;
[JsonProperty("qty")]
public int Qty get; set;
[JsonProperty("is_in_stock")]
public bool IsInStock get; set;
[JsonProperty("is_qty_decimal")]
public bool IsQtyDecimal get; set;
[JsonProperty("show_default_notification_message")]
public bool ShowDefaultNotificationMessage get; set;
[JsonProperty("use_config_min_qty")]
public bool UseConfigMinQty get; set;
[JsonProperty("min_qty")]
public int MinQty get; set;
[JsonProperty("use_config_min_sale_qty")]
public int UseConfigMinSaleQty get; set;
[JsonProperty("min_sale_qty")]
public int MinSaleQty get; set;
[JsonProperty("use_config_max_sale_qty")]
public bool UseConfigMaxSaleQty get; set;
[JsonProperty("max_sale_qty")]
public int MaxSaleQty get; set;
[JsonProperty("use_config_backorders")]
public bool UseConfigBackorders get; set;
[JsonProperty("backorders")]
public int Backorders get; set;
[JsonProperty("use_config_notify_stock_qty")]
public bool UseConfigNotifyStockQty get; set;
[JsonProperty("notify_stock_qty")]
public int NotifyStockQty get; set;
[JsonProperty("use_config_qty_increments")]
public bool UseConfigQtyIncrements get; set;
[JsonProperty("qty_increments")]
public int QtyIncrements get; set;
[JsonProperty("use_config_enable_qty_inc")]
public bool UseConfigEnableQtyInc get; set;
[JsonProperty("enable_qty_increments")]
public bool EnableQtyIncrements get; set;
[JsonProperty("use_config_manage_stock")]
public bool UseConfigManageStock get; set;
[JsonProperty("manage_stock")]
public bool ManageStock get; set;
[JsonProperty("low_stock_date")]
public object LowStockDate get; set;
[JsonProperty("is_decimal_divided")]
public bool IsDecimalDivided get; set;
[JsonProperty("stock_status_changed_auto")]
public int StockStatusChangedAuto get; set;
public class ExtensionAttributes
[JsonProperty("stock_item")]
public StockItem StockItem get; set;
public class CustomAttribute
[JsonProperty("attribute_code")]
public string AttributeCode get; set;
[JsonProperty("value")]
public object Value get; set;
public class M2Product
[JsonProperty("id")]
public int Id get; set;
[JsonProperty("sku")]
public string Sku get; set;
[JsonProperty("name")]
public string Name get; set;
[JsonProperty("attribute_set_id")]
public int AttributeSetId get; set;
[JsonProperty("price")]
public int Price get; set;
[JsonProperty("status")]
public int Status get; set;
[JsonProperty("visibility")]
public int Visibility get; set;
[JsonProperty("type_id")]
public string TypeId get; set;
[JsonProperty("created_at")]
public string CreatedAt get; set;
[JsonProperty("updated_at")]
public string UpdatedAt get; set;
[JsonProperty("extension_attributes")]
public ExtensionAttributes ExtensionAttributes get; set;
[JsonProperty("product_links")]
public IList<object> ProductLinks get; set;
[JsonProperty("options")]
public IList<object> Options get; set;
[JsonProperty("media_gallery_entries")]
public IList<object> MediaGalleryEntries get; set;
[JsonProperty("tier_prices")]
public IList<object> TierPrices get; set;
[JsonProperty("custom_attributes")]
public IList<CustomAttribute> CustomAttributes get; set;
And a form
public partial class Form1 : Form
static private string siteAddress = "http://magento.com/";
static private string token = "d21312d97hosbblablablaqtqawlbw";
Magento objMagneto;
public Form1()
InitializeComponent();
objMagneto = new Magento(siteAddress, token);
private void button1_Click(object sender, EventArgs e)
this.Close();
private void adgClasa_Click(object sender, EventArgs e)
MessageBox.Show(objMagneto.CreateCategory(10, 0, "PC Components", true, true)); // id, ParentId, name, IsActive, IncludeInMenu
magento2 api rest c#
magento2 api rest c#
edited Oct 31 '17 at 9:34
Manoj Deswal
4,36991744
4,36991744
asked Oct 31 '17 at 9:23
AdrianSimiAdrianSimi
12
12
bumped to the homepage by Community♦ 5 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
bumped to the homepage by Community♦ 5 mins ago
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I see you are using RestClient and Newtonsoft Json both great libraries!
Using the 2.2 REST API and RestClient I use the following: -
var client = new RestClient(<endpoint>)
Encoding = Encoding.UTF8,
Authenticator = OAuth1Authenticator.ForProtectedResource(<ConsumerKey>, <ConsumerSecret>, <AccessToken>, <AccessTokenSecret>)
;
var request = new RestRequest("rest/V1/categories", Method.POST);
request.AddHeader("Content-Type", "application/json");
request.Parameters.Add(new Parameter("category", JsonConvert.SerializeObject(new category , Formatting.None), ContentType.Json, ParameterType.RequestBody));
var response = client.Execute(request);
var returnedObject = JsonConvert.DeserializeObject<McomCategory>(response.Content);
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "479"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f199400%2fhow-to-use-access-magento-2-api-from-c-with-rest-and-token-based-authentication%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I see you are using RestClient and Newtonsoft Json both great libraries!
Using the 2.2 REST API and RestClient I use the following: -
var client = new RestClient(<endpoint>)
Encoding = Encoding.UTF8,
Authenticator = OAuth1Authenticator.ForProtectedResource(<ConsumerKey>, <ConsumerSecret>, <AccessToken>, <AccessTokenSecret>)
;
var request = new RestRequest("rest/V1/categories", Method.POST);
request.AddHeader("Content-Type", "application/json");
request.Parameters.Add(new Parameter("category", JsonConvert.SerializeObject(new category , Formatting.None), ContentType.Json, ParameterType.RequestBody));
var response = client.Execute(request);
var returnedObject = JsonConvert.DeserializeObject<McomCategory>(response.Content);
add a comment |
I see you are using RestClient and Newtonsoft Json both great libraries!
Using the 2.2 REST API and RestClient I use the following: -
var client = new RestClient(<endpoint>)
Encoding = Encoding.UTF8,
Authenticator = OAuth1Authenticator.ForProtectedResource(<ConsumerKey>, <ConsumerSecret>, <AccessToken>, <AccessTokenSecret>)
;
var request = new RestRequest("rest/V1/categories", Method.POST);
request.AddHeader("Content-Type", "application/json");
request.Parameters.Add(new Parameter("category", JsonConvert.SerializeObject(new category , Formatting.None), ContentType.Json, ParameterType.RequestBody));
var response = client.Execute(request);
var returnedObject = JsonConvert.DeserializeObject<McomCategory>(response.Content);
add a comment |
I see you are using RestClient and Newtonsoft Json both great libraries!
Using the 2.2 REST API and RestClient I use the following: -
var client = new RestClient(<endpoint>)
Encoding = Encoding.UTF8,
Authenticator = OAuth1Authenticator.ForProtectedResource(<ConsumerKey>, <ConsumerSecret>, <AccessToken>, <AccessTokenSecret>)
;
var request = new RestRequest("rest/V1/categories", Method.POST);
request.AddHeader("Content-Type", "application/json");
request.Parameters.Add(new Parameter("category", JsonConvert.SerializeObject(new category , Formatting.None), ContentType.Json, ParameterType.RequestBody));
var response = client.Execute(request);
var returnedObject = JsonConvert.DeserializeObject<McomCategory>(response.Content);
I see you are using RestClient and Newtonsoft Json both great libraries!
Using the 2.2 REST API and RestClient I use the following: -
var client = new RestClient(<endpoint>)
Encoding = Encoding.UTF8,
Authenticator = OAuth1Authenticator.ForProtectedResource(<ConsumerKey>, <ConsumerSecret>, <AccessToken>, <AccessTokenSecret>)
;
var request = new RestRequest("rest/V1/categories", Method.POST);
request.AddHeader("Content-Type", "application/json");
request.Parameters.Add(new Parameter("category", JsonConvert.SerializeObject(new category , Formatting.None), ContentType.Json, ParameterType.RequestBody));
var response = client.Execute(request);
var returnedObject = JsonConvert.DeserializeObject<McomCategory>(response.Content);
answered Feb 18 at 3:17
Cueball 6118Cueball 6118
11
11
add a comment |
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f199400%2fhow-to-use-access-magento-2-api-from-c-with-rest-and-token-based-authentication%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown